Jump to content

Scanf - fila de numeros inteiros


Recommended Posts

Posted

Boas pessoal, bem, eu estou a tentar ler filas de int numeros...

por exemplo:

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 1 1 1 0 0 1 0 1 0 0 0 0 1 0

0 1 0 1 1 1 1 0 1 1 0 0 1 0 0

Cada numero de uma fila e guardado numa coluna de uma matriz, mas á problema, eu leio os numeros assim : scanf("%d",m[N][M]);

Ou seja, eu escrevo 0, o 0 é guardado na matriz e é suposto o ciclo for continuar para eu ler o próximo, o problema é que quando dou espaço, a posição do for continua a mesma e eu posso ler os numeros que quiser que apenas o 0 ficou guardado... Eu precisava mesmo que eles ficassem cada um guardado na sua posição, mas tem de ser lidos assim em fila.. eu podia fazer scanf("%d %d %d").. o problema é que o numero de numero que tenho de ler numa fila é variado, por isso não posso fazer dessa maneira ;x

if(M<50 && M>=5 && N<50 && N>=5){
	for(int i=0;i<N;i++){
		for(int j=0;j<M;j++){
			scanf("%d",area[N][M]);
		}
	}
}

Corrige um sábio e ele mais sábio ficará. Corrige um ignorante e um inimigo ganharás.

Posted

tens 2 erros:

tas a usar o N e o M no array de area, em vez do i e do j.

nao tens o & antes de area.

Antes que o pmg te diga alguma coisa 🙂 o teu codigo e' C++!!!!

Por muito mais que que estude só aprendo uma coisa, que ainda tenho muita coisa para aprender.

A beleza de um código está em decompor problemas complexos em pequenos blocos simples.

"learn how to do it manually first, then use the wizzy tool to save time."

"Kill the baby, don't be afraid of starting all over again. Fail soon, learn fast."

Posted (edited)

Antes que o pmg te diga alguma coisa 🙂 o teu codigo e' C++!!!!

LOL

Mas é C normal.

O uso de definicoes internas nos ciclos for faz parte do C desde 1999 👍

... mas tem de ser lidos assim em fila.. eu podia fazer scanf("%d %d %d").. o problema é que o numero de numero que tenho de ler numa fila é variado, por isso não posso fazer dessa maneira ;x

Usa fgets() para ler cada linha isoladamente. Depois trata cada linha com sucessivos strtol()

/* NAO TESTADO */
char buf[1000]; /* espaco suficiente para qualquer linha */
size_t row = 0, col = 0;
while (fgets(buf, sizeof buf, stdin)) {
    char *curr = buf, *next;
    while (curr) {
        int tmp = strtol(curr, &next, 10);
        if (next != curr) {
            area[row][col++] = tmp;
            curr = next;
        } else {
            break;
        }
    }
    row++;
    col = 0;
}
Edited by pmg
GeSHi update

What have you tried?

Não respondo a dúvidas por PM

A minha bola de cristal está para compor; deve ficar pronta para a semana.

Torna os teus tópicos mais atractivos e legíveis usando a tag CODE para colorir o código!

Posted

LOL

Mas é C normal.

O uso de definicoes internas nos ciclos for faz parte do C desde 1999 🙂

Agora fiquei com a duvida para qual standard e' que o meu minGW usa :S

Sempre fiquei com a ideia que C deve-se declarar as variaveis logo no inicio das funcoes, pensava que so' C++ e' que suportava isso.

Erro meu

Por muito mais que que estude só aprendo uma coisa, que ainda tenho muita coisa para aprender.

A beleza de um código está em decompor problemas complexos em pequenos blocos simples.

"learn how to do it manually first, then use the wizzy tool to save time."

"Kill the baby, don't be afraid of starting all over again. Fail soon, learn fast."

Posted

Agora fiquei com a duvida para qual standard e' que o meu minGW usa :S

Para uma primeira aproximacao experimenta

printf("__STDC_VERSION__ %ld\n", __STDC_VERSION__);

Se o programa compilar, quando o correres vais logo ver qual a versao usada.

Se nao compilar, é porque tens C89.

Se queres ter a certeza, tens de ver a documentacao do compilador.

What have you tried?

Não respondo a dúvidas por PM

A minha bola de cristal está para compor; deve ficar pronta para a semana.

Torna os teus tópicos mais atractivos e legíveis usando a tag CODE para colorir o código!

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.