Ir ao conteúdo
  • Cadastre-se

Mpixell

Membro Júnior
  • Posts

    7
  • Cadastrado em

  • Última visita

Reputação

8
  1. Boa tarde,estou a fazer um exercício em que preciso de ordenar apenas os nomes do seguinte programa: #include<stdio.h> #include<conio.h> #include<stdlib.h> #include<locale.h> #include<string.h> #include<unistd.h> int j,i,Q=2; typedef struct agenda{ char Nome [20]; char Email[40]; char observacoes[500]; typedef struct endereco{ char Rua[20]; int Numero; char Complemento[20]; char Bairro[20]; char Cep[20]; char Cidade[20]; char Estado[20]; char Pais[20]; }; struct endereco Endereco; typedef struct telefone{ char DDD[10]; char NumeroTelefone[9]; }; struct telefone Telefone; typedef struct aniversario{ int Dia; int Mes; int Anos; }; struct aniversario Aniversario; }; struct agenda Agenda[100]; void Inserir() { char sair; do{ for(i=0;i<Q;i++) { printf("Quandos dados quer introduzir:"); scanf("%d",&Q); system("CLS"); printf("Dados da %d pessoa:\n",i+1); printf("\tNome:"); fflush(stdin); gets(Agenda.Nome); printf("\tEmail:"); fflush(stdin); gets(Agenda.Email); printf("\tEndereço:\n"); printf("\t\tRua:"); fflush(stdin); gets(Agenda.Endereco.Rua); printf("\t\tNúmero:"); scanf("%d",&Agenda.Endereco.Numero); printf("\t\tComplemento:"); fflush(stdin); gets(Agenda.Endereco.Complemento); printf("\t\tBairro:"); fflush(stdin); gets(Agenda.Endereco.Bairro); printf("\t\tCep:"); fflush(stdin); gets(Agenda.Endereco.Cep); printf("\t\tCidade:"); fflush(stdin); gets(Agenda.Endereco.Cidade); printf("\t\tEstado:"); fflush(stdin); gets(Agenda.Endereco.Estado); printf("\t\tPais:"); fflush(stdin); gets(Agenda.Endereco.Pais); printf("\tTelefone:\n"); printf("\t\tDDD:"); fflush(stdin); gets(Agenda.Telefone.DDD); printf("\t\tNumeto de Telefone:"); fflush(stdin); gets(Agenda.Telefone.NumeroTelefone); printf("\tAniversario:\n"); printf("\t\tDia:"); scanf("%d",&Agenda.Aniversario.Dia); printf("\t\tMês:"); scanf("%d",&Agenda.Aniversario.Mes); printf("\t\tAnos:"); scanf("%d",&Agenda.Aniversario.Anos); printf("Observações:"); fflush(stdin); gets(Agenda.observacoes); } printf("\nPressione 0 para sair"); sair=getch(); }while(sair!='0'); system("cls"); } void Ordenar() { int p; char NomeO[100][20]; char sair,aux; do{ for(i=0;i<Q;i++) { for(j=0;j<20;j++) { NomeO[j]=NomeO[j]; } } for(i=0; i<Q; i++) { for(p=0; p<Q; p++) { if(strcmp(NomeO,NomeO)<0) { for(j=0;j<20;j++) { strcpy(aux,NomeO[j]); strcpy(NomeO[j],NomeO[p][j]); strcpy(NomeO[p][j],aux); } } } } printf("Nomes ordenados:\n"); for(i=0; i<Q; i++) { for(j=0;j<20;j++) { printf("%c",NomeO[j]); } printf("\n"); } printf("\nPressione 0 para sair"); sair=getch(); }while(sair!='0'); system("cls"); } int main() { setlocale(LC_ALL,""); int op; do{ printf("1.Inserir\n2.Ordenar\n"); printf("Opção:"); scanf("%d",&op); else if(op==1) { system("CLS"); Inserir(); } else if(op==2) { system("CLS"); Ordenar(); } }while(op!=0); } mas estou a ter uns problemas com o comando strcpy e não sei porque, se alguém me puder ajudar agradeço.
  2. @devair1010 eu estou a usar Dev c++ adicionado 2 minutos depois @devair1010 Muito obrigado, já está a funcionar
  3. @devair1010 Este comando esta a dar-me o seguinte erro [Error] cannot convert 'char (*)[20]' to 'char*' for argument '1' to 'char* gets(char*)'
  4. @Mauro Britivaldo Eu estava sem tempo e não pensei bem no que estava a fazer quando coloquei o código todo,peço desculpas. Agora que tive mais tempo modifiquei o post apenas com a parte que ainda dá erro
  5. Eu estou a tentar fazer um programa que peça 5 nomes, e os armazene num vetor. Depois o programa deverá pedir para o utilizador introduzir um nome para ver se esse nome está no vetor, mas não estou a conseguir. #include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <locale.h> int main() { setlocale(LC_ALL,"Portuguese"); int i; int encontrado=0; char nomes[5][20]; char nome_P[1][20]; for(i=0;i<5;i++) { printf("Insira o %dº Nome: ",i+1); scanf("%s",&nomes); } printf("Pesquisar\n\n"); printf("Insira no mome que deseja procurar: "); scanf("%s",&nome_P); while (i < 5 && encontrado==0) { if (nomes == nome_P) { encontrado = 1; } else { i++; } } if (encontrado==1) { printf ("Nome encontrado\n"); } else { printf ("Nome não encontrado\n"); } } gostaria que alguem me pudesse ajudar com isto. obrigado
  6. Mpixell

    C Erro ao criar um submenu

    @devair1010 Obrigado pela ajuda Eu usei o comando Porque um colega meu me disse para o usar, e o programa não estava a dar erro. Mais uma vez, obrigado pela ajuda
  7. Boa tarde, estou com um problema ao criar um programa que deve ter um menu e ao seleccionar a opção abrir sub menus,em que o menu inicial tem 3 opções de entrada e uma para fechar o programa, ao entrar seleccionar a primeira opção(eu estou a trabalhar sub menu por submenu). No primeiro sub menu existem varias opções e eu estou a ter problemas na primeira, a primeira opção é para introduzir varias idades e salva-las num vetor,após isso deve voltar para o menu inicial. Voltando á opção Idades, a segunda opção é para listar as idades introduzidas mas não lista as idades que o utilizador introduziu. E código que fiz é o seguinte: #include <stdio.h> #include <string.h> #include <stdlib.h> #include <locale.h> #include <unistd.h> #include <math.h> int main(void) { setlocale(LC_ALL,"portuguese"); int idades[5]={0,0,0,0,0}; int idades_o[5]; int opcao,i,j,a,cont,local; printf("1. Idades\n2. Nomes\n3. Notas\n0. Fechar\n"); scanf("%d",&opcao); system("cls"); if(opcao==1)//opção 1 do menu inicial { printf("1. Inserir idade\n2. Listar\n3. Pesquisar\n4. Ordenar\n5. Eliminar\n6. Estatística\n0. Regressar ao menu\n"); /*for(i=0;i<5;i++)//confirmar o problema { printf("%d\n",idades); }*/ scanf("%d",&opcao); system("cls"); if(opcao==1)//opção 1 do submenu { for(i=0;i<5;i++) { printf("\nInsira as idades:"); scanf("%d",&idades); //printf("%d",idades); //confirmar o erro } system("cls"); sleep(0); return main(); } if(opcao==2)//opção 2 do submenu, { for(i=0;i<5;i++) { printf("%d\n",idades); } sleep(0); return main(); } if(opcao==3)//opção 3 do submenu { //incompleto } if(opcao==4) { //incompleto } if(opcao==6)//opção 6 do submenu { printf("1. Numero de idades\n4. Idade maior\n5. Idade menor\n6. Média das idades\n0. Regressar ao menu\n"); scanf("%d",&opcao); if (opcao==0) { sleep(0); return main(); } } if(opcao==0) //opção 0 do submenu { sleep(0); return main(); } } } Eu gostaria que alguém me pudesse ajudar a descobrir o que estou a fazer de mal, muito obrigado.

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