Fc-hardware Postado Novembro 18, 2009 Denunciar Share Postado Novembro 18, 2009 #include<stdio.h> #include<string.h> #include<stdlib.h> struct cadastro { char nome[10]; int matricula; }aluno[2]; int main() { int i,op,k; char resp; resp='s'; while(resp='s') do { printf("1-Cadastrar alunos\n"); printf("2-Sair\n"); scanf("%d",&op); printf("Digite qtos alunos você deseja cadastrar"); scanf("%d",&k); struct cadastro aluno[10]; if(op==1) { for(i=0;i<k;i++) { printf("Digite o nome do aluno %d\n",i+1); scanf("%s",aluno[i].nome); printf("Digite o numero de matricula do aluno %d\n",i+1); scanf("%d",&aluno[i].matricula); } } if (op==2) printf("Obrigado"); printf("Deseja continuar? s/n \n"); scanf("%c",&resp); } while(resp='s'); printf("\n"); system("pause"); }Gostaria que esse bloco de instrução se repetisse enquanto a resposta fosse "S", mas n é isso que acontece.. alguém poderia me ajudar?grato. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 RSalvador Postado Novembro 18, 2009 Denunciar Share Postado Novembro 18, 2009 (editado) Olá, Fc-hardwareExperimente trocar a linha while(resp='s'); para while(resp=='s');, isto é, com dois sinais de igual.Isso porque o = significa atribuição. A variável resp está recebendo o valor 's', e não comparando-se com ele. Para fazer a comparação, utiliza-se ==.Espero que funcione. Abraços! Editado Novembro 18, 2009 por RSalvador Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Fc-hardware Postado Novembro 18, 2009 Autor Denunciar Share Postado Novembro 18, 2009 (editado) não funcionou.. =/ mas tb tem um erro que eu n tinha visto.. coloquei o Do, mesmo já tendo digitado o While antes... vou fazr uns testes aqui.Vlw a atenção. Editado Novembro 18, 2009 por Fc-hardware Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 RSalvador Postado Novembro 18, 2009 Denunciar Share Postado Novembro 18, 2009 É verdade, tem um while sobrando antes do do. Se continuar falhando, poste o erro que o compilador acusa, quem sabe ajuda.Abraço! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Fc-hardware Postado Novembro 18, 2009 Autor Denunciar Share Postado Novembro 18, 2009 agora já está executando o comando de repeticao normalmente.. o problema agora é que ele não está exibindo a opção 2 do menu (EXIBIR) segue o algo#include<stdio.h> #include<string.h> #include<stdlib.h> struct cadastro { char nome[10]; int matricula; }aluno[2]; int main() { int i,op,k,w; char resp; resp='s'; while(resp=='s') { printf("1-Cadastrar alunos\n"); printf("2-Exibir alunos cadastrados\n"); printf("2-Sair\n"); scanf("%d",&op); struct cadastro aluno[10]; if (op==1) { printf("Digite qtos alunos você deseja cadastrar"); scanf("%d",&k); for(i=0;i<k;i++) { printf("Digite o nome do aluno %d\n",i+1); scanf("%s",aluno[i].nome); printf("Digite o numero de matricula do aluno %d\n",i+1); scanf("%d",&aluno[i].matricula); } } if (op==2) { for (i=0;i<k;i++){ printf("%s",aluno[i].nome); printf("%s",aluno[i].matricula); } } printf("Deseja consultar mais algo? s/n\n"); scanf("%s",&resp); } } Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 RSalvador Postado Novembro 18, 2009 Denunciar Share Postado Novembro 18, 2009 (editado) Fc-hardware,O problema do seu código parece estar nos if's. O segundo if inicia com um um for de 0 a k. Mas k só recebe algum valor no primeiro if.Talvez, quando o compilador entra no segundo if, ele encontra apenas lixo na memória relativa à variável k e encerra o for por não encontrar um valor para o fim do laço. Tente declarar algum valor para k fora do laço. Se funcionar, basta adaptar seu código a esta situação.Abraço! Editado Novembro 18, 2009 por RSalvador Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 billandrade Postado Novembro 23, 2009 Denunciar Share Postado Novembro 23, 2009 #include<stdio.h>#include<string.h>#include<stdlib.h>struct cadastro{char nome[10];int matricula;}aluno[2];int main(){int i,op,k;char resp;resp='s';while (resp != 'n'){printf("1-Cadastrar alunos\n");printf("2-Sair\n");scanf("%d",&op);printf("Digite qtos alunos você deseja cadastrar");scanf("%d",&k);struct cadastro aluno[10];if(op==1){ for(i=0;i<k;i++) { printf("Digite o nome do aluno %d\n",i+1); scanf("%s",aluno.nome); printf("Digite o numero de matricula do aluno %d\n",i+1); scanf("%d",&aluno.matricula); }}if (op==2){printf("Obrigado");}printf("Deseja continuar? s/n \n");scanf("%c",&resp);}system("pause");}#include<stdio.h>#include<string.h>#include<stdlib.h>struct cadastro{char nome[10];int matricula;}aluno[2];int main(){int i,op,k;char resp;resp='s';while ((resp == 's') || (resp == 'S')){printf("1-Cadastrar alunos\n");printf("2-Sair\n");scanf("%d",&op);printf("Digite qtos alunos você deseja cadastrar");scanf("%d",&k);struct cadastro aluno[10];if(op==1){ for(i=0;i<k;i++) { printf("Digite o nome do aluno %d\n",i+1); scanf("%s",aluno.nome); printf("Digite o numero de matricula do aluno %d\n",i+1); scanf("%d",&aluno.matricula); }}if (op==2){printf("Obrigado");}printf("Deseja continuar? s/n \n");scanf("%c",&resp);}system("pause");}#include<stdio.h> #include<string.h> #include<stdlib.h> struct cadastro { char nome[10]; int matricula; }aluno[2]; int main() { int i,op,k; char resp; resp='s'; while(resp='s') do { printf("1-Cadastrar alunos\n"); printf("2-Sair\n"); scanf("%d",&op); printf("Digite qtos alunos você deseja cadastrar"); scanf("%d",&k); struct cadastro aluno[10]; if(op==1) { for(i=0;i<k;i++) { printf("Digite o nome do aluno %d\n",i+1); scanf("%s",aluno[i].nome); printf("Digite o numero de matricula do aluno %d\n",i+1); scanf("%d",&aluno[i].matricula); } } if (op==2) printf("Obrigado"); printf("Deseja continuar? s/n \n"); scanf("%c",&resp); } while(resp='s'); printf("\n"); system("pause"); }Gostaria que esse bloco de instrução se repetisse enquanto a resposta fosse "S", mas n é isso que acontece.. alguém poderia me ajudar?grato. Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Fc-hardware
Gostaria que esse bloco de instrução se repetisse enquanto a resposta fosse "S", mas n é isso que acontece.. alguém poderia me ajudar?
grato.
Link para o comentário
Compartilhar em outros sites
6 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.