~TiAgO 0 Denunciar post Postado Maio 22, 2009 Meu algoritmo: Leia as notas Calcule a frequencia absoluta das noas Calcule a frequencia relativa das notas Imprimir as notas lidas e suas respectivas frequencias Programa: #include <cstdlib> #include <iostream> #include <cmath> using namespace std; int main(int argc, char *argv[]) { int indv,nt,nr,numnotas; int nota[45], valor[10], relativa[10]; //Leitura das notas indv = 0; while( nota[indv]!= 999) //<- daqui {cout << "Digite a nota do aluno " << indv; cout << "\n"; cin >> nota[indv]; indv = indv + 1;} //até aki // Cálculo da frequencia aslouta de cada nota for (numnotas = 0; numnotas <=indv; numnotas = numnotas + 1) {for(nt = 0;nt <=10; nt = nt + 1) {if (nota[numnotas] = nt) {valor[nt] = valor [nt] + 1; }}} //Calculo das notas relativas for (nr =0; nr <=10; nr = nr+1) {relativa [nr] = (valor [nr] / indv)*100; } system("PAUSE"); return EXIT_SUCCESS; } Meu comando while não é obedecido de geito nenhum, ou seja, eu coloco as notas e quando acabo digito 999 ao invés de interromper o loop ele continua lendo as notas. Sou novo aqui, e gostaria que alguem desse uma ajudinha. Muito obrigado. Compartilhar este post Link para o post Compartilhar em outros sites
quitZAUMMM 18 Denunciar post Postado Maio 22, 2009 pq você num faz assim: while(true){ cout << "Digite a nota do aluno " << indv; cout << "\n"; cin >> nota[indv]; if (nota[indv] == 999) break; indv = indv + 1; } ou while( nota[indv-1]!= 999)[]s Compartilhar este post Link para o post Compartilhar em outros sites
~TiAgO 0 Denunciar post Postado Maio 22, 2009 Olá amigo quitZAUMMM, Ainda estou aprendendo a linguagem na facul. Por enquanto só sei o básico mesmo. Consegui fazer funcionar aqui. Alterei isso: indv = 0; while( nota[indv]!= 999) {cout << "Digite a nota do aluno " << indv; cout << "\n"; cin >> nota[indv]; indv = indv + 1;} para indv = 0; while( nota[indv]!= 999) { indv = indv + 1; cout << "Digite a nota do aluno " << indv; cout << "\n"; cin >> nota[indv]; } Compartilhar este post Link para o post Compartilhar em outros sites
~TiAgO 0 Denunciar post Postado Maio 22, 2009 Daí já entra indv inicial é 1. Compartilhar este post Link para o post Compartilhar em outros sites
quitZAUMMM 18 Denunciar post Postado Maio 22, 2009 soh q perceba entaum q você naum usa o indice 0 --- pensei desse jeito tbm: indv = 0; cout << "Digite a nota do aluno 0 \n"; while(cin >> nota[indv], nota[indv] != 999){ indv++; cout << "Digite a nota do aluno " << indv << "\n"; } ou indv = 0; cout << "Digite a nota do aluno " << indv << "\n"; while(cin >> nota[indv], nota[indv] != 999) cout << "Digite a nota do aluno " << ++indv << "\n"; Compartilhar este post Link para o post Compartilhar em outros sites
~TiAgO 0 Denunciar post Postado Maio 22, 2009 acabei o programa, mas não está funcionando. #include <cstdlib> #include <iostream> #include <cmath> using namespace std; int main(int argc, char *argv[]) { int indv,nt,nr,numnotas,impressao; int nota[45], valor[10], relativa[10]; //Leitura das notas indv = 0; while( nota[indv]!= 999) {indv = indv + 1; cout << "Digite a nota do aluno " << indv; cout << "\n"; cin >> nota[indv]; } // Cálculo da frequencia absoluta de cada nota for (numnotas = 1; numnotas <=indv; numnotas = numnotas + 1) {for(nt = 0;nt <=10; nt = nt + 1) {if (nota[numnotas] = nt) {valor[nt] = valor [nt] + 1; }}} //Calculo das notas relativas for (nr =1; nr <=10; nr = nr+1) {relativa [nr] = (valor [nr] / indv)*100; } //Impressão dos resultados for (impressao = 0;impressao <= 10; impressao=impressao+1) {cout << "Nota Valor Absoluto Valor Relativo \n"; cout << impressao<<" ----------- "<< valor [impressao]<<" ----------- "<<relativa [impressao]<< endl; } system("PAUSE"); return EXIT_SUCCESS; } Alguem tem alguma idéia de que está acontecendo? Compartilhar este post Link para o post Compartilhar em outros sites
quitZAUMMM 18 Denunciar post Postado Maio 22, 2009 errado como? e outra te dei diversas formas de como fazer e você ainda t apulando a posição 0 Compartilhar este post Link para o post Compartilhar em outros sites
~TiAgO 0 Denunciar post Postado Maio 22, 2009 Os valores das notas relativas e absolutas dão errado para um conjunto de notas simples de 0 a 10. Digite a nota do aluno 0 1 Digite a nota do aluno 1 2 Digite a nota do aluno 2 3 Digite a nota do aluno 3 4 Digite a nota do aluno 4 5 Digite a nota do aluno 5 6 Digite a nota do aluno 6 7 Digite a nota do aluno 7 8 Digite a nota do aluno 8 9 Digite a nota do aluno 9 9 Digite a nota do aluno 10 9 Digite a nota do aluno 11 9 Digite a nota do aluno 12 9 Digite a nota do aluno 13 9 Digite a nota do aluno 14 9 Digite a nota do aluno 15 9 Digite a nota do aluno 16 8 Digite a nota do aluno 17 9 Digite a nota do aluno 18 0 Digite a nota do aluno 19 0 Digite a nota do aluno 20 9 Digite a nota do aluno 21 8 Digite a nota do aluno 22 9 Digite a nota do aluno 23 0 Digite a nota do aluno 24 999 Nota Valor Absoluto Valor Relativo 0 ----------- 2434256 ----------- -1828716397 Nota Valor Absoluto Valor Relativo 1 ----------- 2005437252 ----------- -233946092 Nota Valor Absoluto Valor Relativo 2 ----------- 2005436266 ----------- -233950192 Nota Valor Absoluto Valor Relativo 3 ----------- 32 ----------- 100 Nota Valor Absoluto Valor Relativo 4 ----------- 26 ----------- 100 Nota Valor Absoluto Valor Relativo 5 ----------- 2428776 ----------- 10119900 Nota Valor Absoluto Valor Relativo 6 ----------- 24 ----------- 100 Nota Valor Absoluto Valor Relativo 7 ----------- 24 ----------- 100 Nota Valor Absoluto Valor Relativo 8 ----------- 24 ----------- 100 Nota Valor Absoluto Valor Relativo 9 ----------- 2425184 ----------- 10104900 Nota Valor Absoluto Valor Relativo 10 ----------- 2005436266 ----------- -233950192 Pressione qualquer tecla para continuar. . . Compartilhar este post Link para o post Compartilhar em outros sites
quitZAUMMM 18 Denunciar post Postado Maio 22, 2009 errado: for (numnotas = 1; numnotas <=indv; numnotas = numnotas + 1) {for(nt = 0;nt <=10; nt = nt + 1) {if (nota[numnotas] = nt) {valor[nt] = valor [nt] + 1; }}} sinal de comparação é '==', no seu if beleza, se caso isso aconteça vai fazer uma coisa e senão acontecer?? fica sujeira?? []s Compartilhar este post Link para o post Compartilhar em outros sites
~TiAgO 0 Denunciar post Postado Maio 22, 2009 Ok, mas mesmo assim não obtenho os resultados. Como faço para limpar essa sujeira? Compartilhar este post Link para o post Compartilhar em outros sites
quitZAUMMM 18 Denunciar post Postado Maio 22, 2009 if (nota[numnotas] = nt) valor[nt] = valor [nt] + 1; else .... ?? Compartilhar este post Link para o post Compartilhar em outros sites
~TiAgO 0 Denunciar post Postado Maio 22, 2009 valor[nt]=valor[nt] Compartilhar este post Link para o post Compartilhar em outros sites
quitZAUMMM 18 Denunciar post Postado Maio 23, 2009 valor[nt]=valor[nt] você acha q isso faz sentido???????? Compartilhar este post Link para o post Compartilhar em outros sites
~TiAgO 0 Denunciar post Postado Maio 23, 2009 se a nota do aluno [numnotas] (que vai ate 45) for igual a nota 0, nota[0]=nota[0]+1. Senão, nota[0]=nota[0], não alterando seu valor. Apos testar todos os valores de 0 a 10, vai para a proxima nota do proximo aluno. Compartilhar este post Link para o post Compartilhar em outros sites
Mário Monteiro 179 Denunciar post Postado Maio 23, 2009 mas se será ela mesmo nao precisa ter este senao, entendeu o que o quitZAUMMM tentou passar? nao vai dar erro mas é inutil Compartilhar este post Link para o post Compartilhar em outros sites