Ajuda simples em C

experimenta fazer alguns printfs ai pelo meio dos ciclos a ver se ele os corre todos, e tb como e k cada variavel ta em cada ciclo
 
Pronto acho que ja descubri um dos erros, k é o facto d ter sempre usado a letra i para correr os ciclos, o que pode ter atrofiado o programa um bocado. Ja mudei isso mas ainda nao esta a ler 100% bem.
 
Ja tive a acrescentar printfs. O primeiro printf k fiz foi:
printf("%c %d\n",sentido,ciclos);

No ecran aparece primeiro um numero do genero -8..... ainda um bocado grande, e so depois escreve o sentido e os ciclos. O que se passara?
 
Pronto ja resolvi aparentemente este problema. Como akilo escrevia akele inteiro no ecran, entao meti um fscanf para passar esse -8....... ainda nao sei donde esse numero vem mas pronto.
 
Um conselho.. Se gostas, e queres programar bem em C, quando o fazes, utiliza linux.. Não que a qualidade da tua programação melhore por isso. Apenas Linux é muito mais fiável, prático, sei lá, o que tu queiras, para programar em C
 
Eu também gosto do Linux, mas é mesmo só por causa da consola. Tem aquelas preciosas ferramentas como time, gprof, entre outras.

Mas para isso, não é necessário perders tempo e espaço em disco e reiniciiares o computador só para ires programar 10 minutos de C.

Cygwin - http://www.eecg.utoronto.ca/~aamodt/ece242/cygwin.html

Esse tutorial explica como instalar o cygwin, já com o GCC (+ Make).
Podes usar o mesmo editor que usas, mas na linha de comandos do Cygwin, fazes como se fosse Linux (é uma emulação/cópia do bash).

gcc -o projecto projecto.c (Isto é o mais básico, no teu projecto está de certeza como eles querem que compiles, -ansi, -Wall... etc).

Continuando..

7
h 4
3 E FISICA
7 E ALGORITMOS
8 B BOAS
13 J DADOS
v 3
2 C ELECTROTECNICA
3 E FERIAS
5 K ESTRUTURAS

Alterei o teu programa, tinha alguns erros:

PHP:
void lertabuleiro() {
    int npalavras,ciclos,i,j,k,lin,col,compalavra;
    char sentido,colpac;
    char palavrita[20];

    fichtabuleiro = fopen(escolhafix,"r");
    fscanf(fichtabuleiro,"%d",&npalavras);

    for(i=0;i<2;i++) {

        fscanf(fichtabuleiro,"%c %d",&sentido,&ciclos);

        for(j=0;j<ciclos;j++) { /* Erro grave teres usado outra vez o 'i' no Loop 2 :P */

            fscanf(fichtabuleiro,"%d %c %s",&lin,&colpac,palavrita); /* palavrita sendo string nao precisa do & */
        
            col = (int) (colpac - 'A'); /* Estavas a calcular o indice errado. Segundo o teu input
                                           todas estas letras sao em MAISCULAS */
    
            compalavra = strlen(palavrita);
    
            for(k=0;k<compalavra;k++) { /* Novamente, usaste outra vez o i */
    
                if (sentido='h')
                tab->postatus[lin-1][col+k]=espera; /* Acho nao ser preciso usar col - 1 porque quando
                                                       calculas o indice com - 'A' ele por defeito ja
                                                       comeca em 0, mas e' so experimentar */
    
                if (sentido='v')
                tab->postatus[lin-1+i][col]=espera; /* Igual aqui */
            }
        }
    }
}
 
sera que alguem me ajuda,tenho um programa com o seguinte codigo

...
printf("Introduza o numero de nodos: ");
fflush(stdin);
scanf("%d",&a);
printf("Introduza o numero de arcos: ");
fflush(stdin);
printf("a0");
scanf("%d",&b);
printf("a1");
...

ao fim de fazer o segundo scanf aparece este erro:
"Falha de segmentação (core dumped)"
Alguem sabe porque???
 
Se souberes o que é o valgrind corre o teste e ve a linha onde dá erro.
Senão mostra aqui mais um bocado do código..
 
sera que alguem me ajuda,tenho um programa com o seguinte codigo

...
printf("Introduza o numero de nodos: ");
fflush(stdin);
scanf("%d",&a);
printf("Introduza o numero de arcos: ");
fflush(stdin);
printf("a0");
scanf("%d",&b);
printf("a1");
...

ao fim de fazer o segundo scanf aparece este erro:
"Falha de segmentação (core dumped)"
Alguem sabe porque???

tas a usar memória que não devias... o que é o a0?
 
Back
Topo