Ir ao conteúdo
  • Cadastre-se

James_Mulder

Membro Pleno
  • Posts

    40
  • Cadastrado em

  • Última visita

Reputação

18
  1. Coloquei uma laço para ler a nota de 4 bimestres de 10 alunos, mas só aparece 0 #include <stdio.h> #include <stdlib.h> /*4. */ int main(){ int op, i, j; float aluno[10][4]={0}; printf("[1] Entrada de dados\n[2] Pesquisa de RA\n[3] Relatorio de RAs\n[4] Fim"); printf("\ndigite sua opcao: "); scanf("%d", &op); switch(op){ case 1: for(i=0; i<10; i++){ for(j=0; j<4; j++){ printf("\nAluno %.0f - nota do bimestre %.0f: ", aluno[i][j]); scanf("%f", &aluno[j]); } } } }
  2. Olá! Estou lendo sobre redes de computadores e fiquei com uma dúvida (talvez meio *****): Segundo o livro, toda informação, é inicialmente um bit, transmitido por eletricidade através de um cabo, e quando chega ao computador, tem um protocolo codificador que transforma os 0 e 1 em informação convertida. Mas sem cabos (notebooks, celular), como isso funciona na prática?
  3. @arfneto Muito boa a resposta. Vou até salvar aqui. Valeu!
  4. Comecei a estudar matrizes hoje e estou com algumas dúvidas. No caso, o printf não imprime da forma correta. Preciso ler 5 colunas de uma linha e mostrar o total eu coloquei 3 linhas pois ainda estou dsenvolvendo #include <stdio.h> #include <stdlib.h> //exercício 2 int main() { int matriz[3][5]; int i, x, total1=0, total2=0, total3=0, total; for(i=0; i<5; i++){ printf("digite o valor %d da linha 1: ", i+1); scanf("%d", &matriz[0][i]); total1+=matriz[0][i]; } for(i=0; i<5; i++){ printf("%d = %d", matriz[0][i], total1); } }
  5. #include <stdio.h> #include <stdlib.h> #include <ctype.h> int main() { int cand1=0, cand2=0, brancos=0, nulos=0, total=0; float porccand1=0, porccand2=0, porbrancos=0, pornulos=0; char op, c; do{ printf("Digite\n1 para o candidato X,\n2 para o candidato Y,\nB para votar em branco\nN para votar nulo"); printf("\nou 0 para sair: "); fflush(stdin); scanf("%c%c", &op, &c); //lê dois caracteres para limitar os votos a apenas 1 caracter op=toupper(op); switch(op){ case '1': if(c != '\n') //caso seja digitado dois caracters iguais (11) ele desconsiera e soma para nulos nulos++; else cand1++; break; case '2': if(c != '\n') nulos++; else cand2++; break; case 'B': brancos++; break; case 'N': nulos++; break; case '0': break; default: nulos++; break; }total=cand1+cand2+nulos+brancos; system("cls"); }while(op != '0'); printf("votos para o candidato X = %d\n\nvotos para o candidato Y = %d\n\nvotos brancos = %d\n\nvotos nulos = %d\n", cand1, cand2, brancos, nulos); printf("\ntotal de votos = %d\n\n", total); porccand1=((cand1/total)*100); porccand2=((cand2/total)*100); porbrancos=((brancos/total)*100); pornulos=((nulos/total)*100); printf("%.2f", porccand1); printf("\n%.2f", porccand2); printf("\n%.2f", porbrancos); printf("\n%.2f", pornulos); }
  6. @devair1010 valeu! tentei várias coisas e nenhuma deu certo. não estou habituado a usar logica booleana. O if(flag) seria o mesmo q dizer se flag for verdade (recebeu o numero 50), então ele é verdadeiro e vai imprimir a mensagem?
  7. o problema ocorre no case 4. caso algum numero digitado foi igual a 50, ele deve mostrar em que posição se encontra. mas só funciona se for digitado 50 na posicao 0, de resto ele mostra a posicao em que foi digitado (por exemplo "50 na posicao 2") e em seguida mostra a a mensagem do else "\n50 nao aparece no vetor" a qnt de vezes igual a posicao do valor 50 (eu sei, ficou dificl de entender) o problema é so no case 4, desconsiderem o resto porque ainda está em produção #include <stdio.h> #include <stdlib.h> #include <ctype.h> int main() { int vetorA[10], vetorB[10]; int i, x, soma10=0; int op; for (i=0; i<10; i++){ printf("Valor %d do vetor: ", i+1); scanf("%d", &vetorA[i]); } printf("opção: "); scanf("%d", &op); switch(op){ case 1: for(i=0; i<10; i++){ vetorB[i]=vetorA[i]; printf("\n%d", vetorB[i]);} break; case 2: case 3: printf("posicao 7 %d\nposicao 9 %d", vetorA[7], vetorA[9]); break; case 4: for(i=0; i<10; i++){ if(vetorA[i]==50){ printf("\n50 na posicao %d", i); break;} else printf("\n50 nao aparece no vetor"); }break; case 5: for(i=0; i<10; i++){ if(vetorA[i]==10){ soma10++;}} if(soma10==1){ printf("10 aparece uma vez no vetor A"); break;} else if(soma10>=2){ printf("\n10 aparece %d vezes no vetor A", soma10); break;} else{ printf("10 nao aparece nenhuma vez no vetor A"); break;} }}
  8. @zPsychosocial ah, sim. tem a questão das posições do vetor. Valeu
  9. #include <stdio.h> #include <stdlib.h> #include <ctype.h> int main() { int vetorA[10]={0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, vetorB[10]={0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; int i; char op; for (i=0; i<10; i++){ printf("Valor %d do vetor: ", i+1); scanf("%d", &vetorA[i]); } printf("opção: "); fflush(stdin); scanf("%c", &op); switch(op){ case '1': for(i=0; i<10; i++){ vetorB[i]=vetorA[i]; printf("\n%d", vetorB); } } }
  10. Preciso fazer um programa que calcule a qnt de votos de dois candidatos, o numero d votos brancos e nulos. estou com 2 problemas: é pra adicionar 1 aos nulos quando uma das opções for errada, por exemplo '3', mas quando eu digito 11, vai tanto um voto pro candidato 1 (que tem o codigo 1 pra receber votos) qnt pro nulo. e é pro programa paraar quando for digitado 0, mas quando eu digito 0 contabiliza para os nulos também. tem alguma forma de fazer uma "exceção" pro 0? #include <stdio.h> #include <stdlib.h> #include <ctype.h> int main() { int op, cand1=0, cand2=0, brancos=0, nulos=0; //candidato 1 e candidato 2 char op; do{ printf("Digite\n1 para o candidato X,\n2 para o candidato Y,\nB para votar em branco\nN para votar nulo"); printf("\nou 0 para sair: "); fflush(stdin); scanf("%c", &op); op=toupper(op); switch(op){ case '1': cand1++; break; case '2': cand2++; break; case 'B': brancos++; break; case 'N': nulos++; break; default: nulos++; break; } system("cls"); }while(op != '0'); printf("%d\n\n%d\n\n%d\n\n%d", cand1, cand2, brancos, nulos); } adicionado 3 minutos depois se forem testar, tirem aquele op do int. tava testando de outra forma e esqueci de tirar qn postei aqui
  11. coloquei a condição para que quando o char seja diferente de 'f' ou 'm' o programa pare, mas ele continua com o loop #include <stdio.h> #include <stdlib.h> #include <ctype.h> int main(){ int n, idade, peso, i, mediapeso=0, qntpeso=0, peso_acima80=0; int mediaidade=0, idade_acima25=0, qntidade=0; char op; do{ printf("\nquantidade de pessoas: "); scanf("%d", &n); for(i=0; i<n; i++){ printf("\npeso em kg: "); scanf("%d", &peso); printf("idade: "); scanf("%d", &idade); printf("sexo [m/f]: "); getchar(); scanf("%c", &op); op=tolower(op); if(op=='m'){ qntpeso++; mediapeso+=peso; mediapeso=mediapeso/qntpeso; if(op=='m' && peso>80) peso_acima80++;} if(op=='f'){ qntidade++; mediaidade+=idade; mediaidade=mediaidade/qntidade; if(op=='f' && idade>25) idade_acima25++; } }printf("media do peso dos homens = %d\nquantidade de homens acima de 80kg = %d", mediapeso, peso_acima80); printf("\nmedia da idade das mulheres = %d\nquantidade de mulheres acima dos 25 anos = %d", mediaidade, idade_acima25); }while(op!='m' || op!='f'); }
  12. Fiz um programa que pede um numero total de funcionarios, calcula um aumento fixo p cada um e a a partir da daí pede um monte de coisa. A unica (eu acho) q n consegui foi calcular a media dos funcionarios q ganham abaixo de 1000 mesmo apos o aumento. Ela está no final do codigo #include <stdio.h> #include <stdlib.h> #include <ctype.h> int main(){ int funcionarios, salario_inicial, aumento, aumento_salarial, i, maior, menor; int total=0, total5000=0, cond1=0, menos_de_mil=0, media=0; //cond1 = quantos ganham entre 1001 e 2500 antes dos aumentos int cond2=0; //cond2 = quantos ganharam um aumento entre 2501 e 5000 char op; do{ printf("total de funcionarios: "); scanf("%d", &funcionarios); for(i=0; i<funcionarios; i++){ printf("\nsalario %d: ", i+1); scanf("%d", &salario_inicial); if(salario_inicial >1000 && salario_inicial <=2500) cond1++; if(salario_inicial<=1000){ aumento=salario_inicial+(salario_inicial*0.035); aumento_salarial=salario_inicial*0.035;} else if(salario_inicial>1000 && salario_inicial<=2500){ aumento=salario_inicial+(salario_inicial*0.03); aumento_salarial=salario_inicial*0.03;} else if(salario_inicial>2500 && salario_inicial<=5000){ aumento=salario_inicial+(salario_inicial*0.025); aumento_salarial=salario_inicial*0.025;} else if(salario_inicial>5000){ aumento=salario_inicial+(salario_inicial*0.01); aumento_salarial=salario_inicial*0.01;} if(i==0){ maior=aumento;} else if(i==0) menor=aumento; if(aumento>maior){ maior=aumento;} else if(aumento<menor) menor=aumento; if(aumento>5000) total5000+=aumento; if(aumento_salarial>2500 && aumento_salarial <=5000) cond2++; if(aumento<1000) menos_de_mil++; total+=aumento; media=aumento+aumento; media=aumento/menos_de_mil; printf("\nnovo salario %d\n", aumento); } printf("quer continuar [S/N]"); getchar(); scanf("%c", &op); op=toupper(op); }while(op != 'N'); printf("\nmaior %d\nmenor %d\n%d funcionarios ganham entre 1001 e 2500 antes dos aumentos", maior, menor, cond1); printf("\nsoma total dos salarios apos o aumento %d", total); printf("\nsoma total dos salarios acima de 5000 apos o aumento = %d\n", total5000); printf("%d funcionarios ganharam aumento entre 25001 e 5000", cond2); printf("\nmedia dos que ganham menos de 1000 apos o aumento = %d", media); }
  13. @Flávio Pedroza acredito q sim. Vou fazer a somatoria na calculadora pra conferir, mas aparentemente está correto.
  14. Exercício: fazer a soma de 37*38/1 + 36*37/2 .... + 1*2/37 eu sei q parece uma duvida meio *****, mas n consigo fazer a somatoria dos valores 1406 + 666... e quando coloco float nas variaveis só resulta em 0 #include <stdio.h> #include <stdlib.h> int main(){ int a, b=38, div=0, media=0, soma=0; for(a=38; a>=2;a--){ b--; div++; media=((a*b)/div); soma=media+media; printf("soma dos inteiros %d\n", soma); } }
  15. @isrnick tava usando dev c++ mas já deu pra resolver com o getchar(). Valeu pela explicação

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...