jpedro7 Posted December 20, 2007 at 10:41 AM Report Share #155366 Posted December 20, 2007 at 10:41 AM Quando estou a inserir as linhas no array bidimensional o printf vem correcto mas quando acabo e vou listar o conteúdo da tabela não está correcto. Exemplo: Inserir nome do texto Flores Inserir Linhas primeira Inserir Linhas segunda Inserir Linhas terceira Inserir Linhas end Linhas...pstend Linhas...stend Linhas...tend Linhas...nd Linhas...d Linhas... Linhas...ira Linhas...ra Linhas...a Como podem vêr a listagem "Linhas..." está errado. Como posso resolver ? Estou a utilizar o Microsoft Visual Studio 2005( full instalation) para compilar e linkeditar. Obrigado pela ajuda. O código fonte: #include <stdio.h> #include <string.h> #define MAX_LN 25 /* Máximo 26 Linhas última linha é = END */ #define MAX_TEXTOS 9 /* Máximo 10 Textos */ int resultado; int ind_titulo; int tot_ln=0; int tot_textos=0; char texto_t[MAX_TEXTOS]=""; char texto_l[MAX_TEXTOS][MAX_LN]; int menu (void); void inserir_textos (void); void seleccionar_textos (void); int main() { int opcao, nrTextos=0, nrLinhas=0; /* inicializacao do duplo array a NULL */ for (nrTextos=0;nrTextos<9;nrTextos++) { for(nrLinhas=0;nrLinhas<25;nrLinhas++) { texto_l[nrTextos][nrLinhas]='\0'; } } for(; { do { opcao = menu(); switch(opcao) { case 1: inserir_textos(); break; case 2: seleccionar_textos(); break; case 3: return 0; } }while (resultado!='1' && resultado!='2' && resultado!='3'); } } int menu (void) { int opc; printf("\n\n1 new...end \n"); printf("2 select\n"); printf("3 exit\n"); scanf ("%d", &opc); return opc; } void inserir_textos() { int i, z; char texto[80]; printf("Inserir o Nome do Texto \n"); //fgets(&texto_t[tot_textos],80,stdin); scanf("%s", &texto_t[tot_ln]); printf("Titulo..Tabela..%s \n", &texto_t[0]); for (i=0;i<26;i++) { printf("Inserir linhas de Texto \n"); scanf("%s", &texto_l[tot_ln][i]); //fgets(&texto_l[tot_ln][i],80,stdin); if (strcmp(&texto_l[tot_ln][i], "end") == 0) { for(z=0;z<=25;z++) { if (strcmp(&texto_l[tot_ln][z], "end") != 0) { printf("Linhas...%s \n", &texto_l[tot_ln][z]); } } break; } printf("Linha...%s \n", &texto_l[tot_ln][i]); } tot_ln++; tot_textos++; } void seleccionar_textos() { int i; char texto[80]; printf("Digitar o Nome do Texto \n"); scanf("%s", &texto); //fgets(texto,80,stdin); for(i=0;i<=9;i++) { if (strcmp(&texto_t[i], texto) == 0) { printf("Texto...%s \n", &texto_t[i]); ind_titulo = i; break; } } for(i=0;i<=25;i++) { if (strcmp(&texto_l[ind_titulo][i], "end") != 0) { printf("Linhas...%s \n", &texto_l[ind_titulo][i]); } } } Link to comment Share on other sites More sharing options...
Rui Carlos Posted December 20, 2007 at 01:33 PM Report Share #155388 Posted December 20, 2007 at 01:33 PM Repost: http://www.portugal-a-programar.pt/index.php?showtopic=15484 Qualquer questão, PM. Rui Carlos Gonçalves Link to comment Share on other sites More sharing options...
Recommended Posts