Ir ao conteúdo
  • Cadastre-se

Matheus Quadros

Membro Júnior
  • Posts

    3
  • Cadastrado em

  • Última visita

Reputação

0
  1. Eae galera, tenho que apresentar esse código amanha e queria uma explicação que eu poderia falar na frente A ideia do cógido e ler um gabarito em excel organizar com o algoritmo Shellsort e depois criar um arquivo com os alunos abaixo da media geral Obrigado desde já. #include <stdio.h> #include <string.h> #include <ctype.h> #define tam 10000 FILE *arquivo; int matricula[tam][1]; float resultado[tam][1]={0}; char dados[tam][10]; char gabarito[10]; char situacao[10]; int leitura(char *nome_arq){ arquivo = fopen(nome_arq,"r"); if(arquivo==NULL) return 0; int x=0; setbuf(stdin,NULL); while(fscanf(arquivo,"\n%[^%;];%c;%c;%c;%c;%c;%c;%c;%c;%c;%c",&matricula[x][0],&dados[x][0],&dados[x][1],&dados[x][2],&dados[x][3],&dados[x][4], &dados[x][5],&dados[x][6],&dados[x][7],&dados[x][8],&dados[x][9])!=EOF){ x++; } fclose(arquivo); return x; } float media(int total){ int i,j,soma,acertos; float med_geral=0; char a,b; for(i=0;i<total;i++){ soma=0; acertos=0; for(j=0;j<10;j++){ a=dados[i][j];b=gabarito[j]; if (a==b){soma=soma+j+1;acertos++;} } resultado[i][0]=(soma*10)/55.0; med_geral=med_geral+resultado[i][0]; matricula[i][0]=i+1; } return med_geral/total; } void gravar(char *nome_arq, int total,float mediageral){ int i; arquivo = fopen(nome_arq,"w"); fprintf(arquivo,"Matricula;Media\n"); for(i=0;i<total;i++){ if(resultado[i][0]<mediageral){ fprintf(arquivo,"%d;",matricula[i][0]); fprintf(arquivo,"%0.2f\n",resultado[i][0]); } } fclose(arquivo); } void gabaritos(){ int k; for (k=0;k<10;k++){ setbuf(stdin,NULL); printf("\nInforme o gabarito da questao %d: \n",k+1); scanf("%c",&gabarito[k]); gabarito[k]=toupper(gabarito[k]); } } void shellSort(int size) { int i , j , aux2; float aux1; int h = 1; while(h < size) { h = 3*h+1; } while ( h > 1) { h /= 3; for(i = h; i < size; i++) { aux1 = resultado[i][0]; aux2 = matricula[i][0]; j = i - h; while (j >= 0 && aux1 < resultado[j][0]) { resultado [j + h][0] = resultado[j][0]; j -= h; } resultado [j + h][0] = aux1; matricula[j+h][0]=aux2; } } } int main(){ float mg; int t; t=leitura("dados.csv"); gabaritos(); printf("\n=======================================\n"); printf("\nGabarito Correto: %s\n",gabarito); if(t>0){ mg=media(t); printf("\nMedia Geral: %0.2f\n",mg); printf("\n=======================================\n"); shellSort(t); gravar("boletim.csv",t,mg); } return 0;}
  2. A entrada contém vários casos de testes. A primeira linha de entrada contém um inteiro N que indica a quantidade de casos de teste que vem a seguir. Cada caso de teste consiste de uma única linha contendo de um a 50 caracteres, formado por letras minúsculas (‘a’-‘z’) ou espaços (‘ ’). Atenção para possíveis espaços no início ou no final do texto! Nota: No exemplo de entrada os espaços foram substituídos por pequenos pontos (‘·’) para facilitar o entendimento dos exemplos. Saída Para cada caso de teste imprima a mensagem oculta no texto de entrada. Exemplo de Entrada 4 compete·online·design·event·rating ··u····r·i··o····n·l··i····n··e··· · round··elimination·during··onsite··contest Exemplo de Saida coder urionline redoc
  3. Segue o codigo em c++ Obrigado #include <iostream> #include <string> using namespace std; int main() { int n; cin >> n; int aux = n; while (n--){ string s1, s2 = ""; if(n == aux-1) cin.ignore(); getline (cin, s1); if (s1[0] >= 'a' && s1[0] <= 'z') s2 += s1[0]; for (int i = 1; i < s1.size(); i++){ if ((s1 >= 'a' && s1 <= 'z') && s1[i-1] == ' ') s2 += s1; } cout << s2 << endl; } return 0; }

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...