Ir ao conteúdo
  • Cadastre-se

Preencher matriz usando for e do...while.


Ir à solução Resolvido por Gustavo Bove,

Posts recomendados

Alguém poderia me ensinar a preencher uma matriz 3x3 usando for e do while? Tenho um exercício para fazer que pede isso, mas não estou conseguindo. 

 

#include <stdio.h>
#include <conio.h>

int main () { 


int matA[3][3];
int matB[3][3];
int matSoma[3][3];
int a, b;

b=0;
a=0; 

printf ("NumerosA: ");

for (a=0; a<3; a++){
do {
	
	
	scanf ("%d", &matA[a][b]);
		b++;
	
} while (b < 3);
} 

}

Fiz assim, só que ao invés do programa pedir 9 números. ele só pede 5. :(

 

 

Só consigo fazer o programa pedir 9 números quando digo que b=-4

Link para o comentário
Compartilhar em outros sites

Ja tentou utilizar dois for?

do while - verifica a condição no final do loop

for - verifica a condição no inicio do loop

#include <stdio.h>
#include <conio.h>

int main () { 
  
int matA[3][3];
int matB[3][3];
int matSoma[3][3];
int a, b;
 
printf ("NumerosA: ");

for (a=0; a<3; a++){
	for(b=0; b <3; b++)
		scanf ("%d", &matA[a][b]);
}

return EXIT_SUCCESS;
}

 

Link para o comentário
Compartilhar em outros sites

agora, 1freakday disse:

Ja tentou utilizar dois for?


#include <stdio.h>
#include <conio.h>

int main () { 
  
int matA[3][3];
int matB[3][3];
int matSoma[3][3];
int a, b;
 
printf ("NumerosA: ");

for (a=0; a<3; a++){
	for(b=0; b <3; b++)
		scanf ("%d", &matA[a][b]);
}

return EXIT_SUCCESS;
}

 

Então, é que o exercício que tenho que fazer específica que não posso usar outra coisa além de for/do...while. Então não posso usar dois for

Link para o comentário
Compartilhar em outros sites

  • Solução
#include <stdio.h>
#include <conio.h>

int main () { 


int matA[3][3];
int matB[3][3];
int matSoma[3][3];
int matSoma1;
int a, b;

b=0;
// Matriz A usando FOR e DO...WHILE
printf ("Preencha a matriz A com 9 numeros inteiros:\n");



for (a=0; a<3; a++){
	do {
		scanf ("%d", &matA[a][b]);
		b++;
	
	} while (b < 3);
	b=0;
}

//Fim da Matriz A

a=0;
b=0;
         printf ("Preencha a matriz  B com 9 numeros inteiros:\n");

// Matriz B usando For e While
for (a=0; a<3; a++) { 
while (b<3){
	
	scanf ("%d", &matB[a][b]);
	b++;
}
b=0;
}
// Fim da Matriz B

//Soma das Matrizes usando For e For
for (a=0; a<3; a++){
	for (b=0; b<3; b++){ 
	
	
	matSoma[a][b] = matA[a][b] + matB[a][b];


// Fim da Soma.
 	
	}
    }
//Exibir matriz somada usando Do....While e While. 
a=0;
b=0;
  printf ("\nA Soma das matrizes:\n");

	
	 printf ("\n");

do {
	
	while (b<3)	{
	
		printf ("\n\tSoma: %d", matSoma[a][b]);
	                                            
         b++;   }
         b=0;
                  a++;                      } while (a<3);
                  
	}



Consegui resolver. Pra quem tiver interesse ^

                                                                      

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Se fosse por questão de otimização e clareza, você poderia por essas variáveis em zero dentro do próprio loop, exemplo:

#include <stdio.h>
#include <conio.h>

int main () {

    int matA[3][3];
    int matB[3][3];
    int matSoma[3][3];
    int a, b;

    // Matriz A usando FOR e DO...WHILE
    printf ("Preencha a matriz A com 9 numeros inteiros:\n");

    for (a=0, b=0; a<3; a++, b=0)
        do {
            scanf ("%d", &matA[a][b]);
            b++;
        } while (b < 3);
    //Fim da Matriz A


    // Matriz B usando For e While
    printf ("Preencha a matriz  B com 9 numeros inteiros:\n");

    for (a=0, b=0; a<3; a++, b=0)
        do {
            scanf ("%d", &matB[a][b]);
            b++;
        } while (b < 3);
    // Fim da Matriz B

    //Soma das Matrizes usando For e For
    for (a=0; a<3; a++)
        for (b=0; b<3; b++)
            matSoma[a][b] = matA[a][b] + matB[a][b];
    // Fim da Soma.


    //Exibir matriz somada usando Do....While e While.
    printf ("\nA Soma das matrizes:\n\n");
    a = 0;
    do
    {
        b=0;
        while (b<3)	{
            printf ("\n\tSoma: %d", matSoma[a][b]);
            b++;
            }
        a++;
    } while (a<3);

    return 0;
}

 

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

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