Descubra respostas para suas perguntas no Sistersinspirit.ca, a plataforma de Q&A mais confiável e eficiente para todas as suas necessidades. Descubra soluções detalhadas para suas dúvidas de uma ampla gama de especialistas em nossa plataforma amigável de perguntas e respostas. Junte-se à nossa plataforma para conectar-se com especialistas prontos para fornecer respostas detalhadas para suas perguntas em diversas áreas.

Valores aleatórios quando vai exibir os valores de uma matriz em linguagem C

Eu criei esse algoritmo que armazena valores para cada mês do ano, mas está com algum tipo de problema na exibição dos valores dentro da matriz, onde aparece números que não foram digitados.

#include
#include
#include


int main (void){

int i, j, m, x, v, z, opcao;

float total [12][10], soma;

do {

system("chcp 65001");

system("cls");

//Código main

setlocale(LC_ALL,"Portuguese_Brasil");


printf("Escolha o mês que deseja inserir as informações (de 1 a 12): \n");

scanf("%d", &m);

printf("Digite a quantidade de valores a serem informados: \n");

scanf("%d",&z);


switch (m){

case 1:

for ( i=1; i<=1; i++ )

for ( j=1; j<=z; j++ )

{

printf("Considerando a primeira [] o mês e a segunda o valor, digite os valores:");

printf ("\n [%d - Janeiro] [%d º valor] = ", i, j);

scanf ("%f", &total[i][j]);

}

break;

case 2:

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

for ( j=1; j<=z; j++ )

{

printf("Considerando a primeira [] o mês e a segunda o valor, digite os valores:");

printf ("\n [%d - Fevereiro] [%d º valor] = ", i, j);

scanf ("%f", &total[i][j]);

}

break;

case 3:

for ( i=3; i<=3; i++ )

for ( j=1; j<=z; j++ )

{

printf("Considerando a primeira [] o mês e a segunda o valor, digite os valores:");

printf ("\n [%d - Março] [%d º valor] = ", i, j);

scanf ("%f", &total [i][j]);

}

break;

case 4:

for ( i=4; i<=4; i++ )

for ( j=1; j<=z; j++ )

{

printf("Considerando a primeira [] o mês e a segunda o valor, digite os valores:");

printf ("\n [%d - Abril] [%d º valor] = ", i, j);

scanf ("%f", &total[i][j]);

}

break;

case 5:

for ( i=5; i<=5; i++ )

for ( j=1; j<=z; j++ )

{

printf("Considerando a primeira [] o mês e a segunda o valor, digite os valores:");

printf ("\n [%d - Maio] [%d º valor] = ", i, j);

scanf ("%f", &total[i][j]);

}

break;

case 6:

for ( i=6; i<=6; i++ )

for ( j=1; j<=z; j++ )

{

printf("Considerando a primeira [] o mês e a segunda o valor, digite os valores:");

printf ("\n [%d - Junho] [%d º valor] = ", i, j);

scanf ("%f", &total[i][j] );

}

break;

case 7:

for ( i=7; i<=7; i++ )

for ( j=1; j<=z; j++ )

{

printf("Considerando a primeira [] o mês e a segunda o valor, digite os valores:");

printf ("\n [%d - Julho] [%d º valor] = ", i, j);

scanf ("%f", &total[i][j]);

}

break;

case 8:

for ( i=8; i<=8; i++ )

for ( j=1; j<=z; j++ )

{

printf("Considerando a primeira [] o mês e a segunda o valor, digite os valores:");

printf ("\n [%d - Agosto] [%d º valor] = ", i, j);

scanf ("%f", &total[i][j]);

}

break;

case 9:

for ( i=9; i<=9; i++ )

for ( j=1; j<=z; j++ )

{

printf("Considerando a primeira [] o mês e a segunda o valor, digite os valores:");

printf ("\n [%d - Setembro] [%d º valor] = ", i, j);

scanf ("%f", &total[i][j]);

}

break;

case 10:

for ( i=10; i<=10; i++ )

for ( j=1; j<=z; j++ )

{

printf("Considerando a primeira [] o mês e a segunda o valor, digite os valores:");

printf ("\n [%d - Outubro] [%d º valor] = ", i, j);

scanf ("%f", &total[i][j]);

}

break;

case 11:

for ( i=11; i<=11; i++ )

for ( j=1; j<=z; j++ )

{

printf("Considerando a primeira [] o mês e a segunda o valor, digite os valores:");

printf ("\n [%d - Novembro] [%d º valor] = ", i, j);

scanf ("%f", &total[i][j]);

}

break;

case 12:

for ( i=12; i<=12; i++ )

for ( j=1; j<=10; j++ )

{

printf("Considerando a primeira [] o mês e a segunda o valor, digite os valores:");

printf ("\n [%d - Dezembro] [%d º valor] = ", i, j);

scanf ("%f", &total[i][j]);

}

break;


default:

printf("Valor inválido \n");

break;

}

//Exibindo os valores

for ( i=1; i<=12; i++ )

for ( j=1; j<=10; j++ )

{

printf ("\n Valor [%d][%d] = %.2f \n", i, j, total[i][j]);

}


//Soma total da matriz

for (i=1; i<=12; i++)

for (j=1; j<=10; j++){

soma += total[i][j];

}


printf(" \n Total da soma dos valores da matriz = %.3f ", soma);


printf(" \n Deseja realizar uma nova operação? [1 - SIM] ou [2 - NÃO] \n");

scanf ("%d", &opcao);


} while (opcao == 1);

printf("\n\n Volte Sempre!! \n \n");

}


Valores Aleatórios Quando Vai Exibir Os Valores De Uma Matriz Em Linguagem CEu Criei Esse Algoritmo Que Armazena Valores Para Cada Mês Do Ano Mas Está Com Algum class=

Sagot :

Resposta:

Reestruturei seu algoritmo, acho que era assim que você queria, saiu de 281 linhas para apenas 57.

O Erro eu não sei qual é, também ocorreu nesse meu, minha solução foi zerar a matriz, já servia para a nova operação também, (se a nova operação deve continuar com os valores anteriores, coloque a parte de zerar a matriz fora do while).

Código final:

#include <stdio.h>

int main (void){

   int mes, valor = 0;

   float total [12][10], soma;

   int opcao = 1;

   int i,j;

   

   while(opcao == 1){

       //ZERANDO PARA UMA NOVA OPERAÇÃO

       soma = 0;

       for ( i=1; i<=12; i++ ){

           for ( j=1; j<=10; j++ ){

               total[i][j] = 0;    

           }

       }

       printf("Escolha o mês que deseja inserir as informações (de 1 a 12): \n");

       scanf("%d", &mes);

       

       //VERIFICA SE O MÊS É ENTRE 1 E 12.

       while(mes < 1 && mes > 12){

           printf("Mês invalido, informe de 1 a 12: ): \n");

           scanf("%d", &mes);

       }

       

       printf("Digite a quantidade de valores a serem informados: \n");

       scanf("%d",&valor);

       

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

           for(j = 1; j <= valor; j++){

               printf("Considerando a primeira [] o mês e a segunda o valor, digite os valores:");

               printf ("\n [%d - Janeiro] [%d º valor] = ", i, j);

               scanf ("%f", &total[mes][j]);

           }

       }

       

       //Exibindo os valores

       for ( i=1; i<=12; i++ ){

           for ( j=1; j<=10; j++ ){

               printf ("\n Valor [%d][%d] = %.2f \n", i, j, total[i][j]);

           }

       }

       

       for (i=1; i<=12; i++){

           for (j=1; j<=10; j++){

               soma += total[i][j];

           }

       }

       

       printf(" \n Total da soma dos valores da matriz = %.3f ", soma);

       printf(" \n Deseja realizar uma nova operação? [1 - SIM] ou [2 - NÃO]: \n");

       scanf ("%d", &opcao);

   }

   printf("\n\n Volte Sempre!! \n \n");

}

Obrigado por passar por aqui. Nos esforçamos para fornecer as melhores respostas para todas as suas perguntas. Até a próxima. Esperamos que tenha achado útil. Sinta-se à vontade para voltar a qualquer momento para mais respostas precisas e informações atualizadas. Sistersinspirit.ca, seu site de referência para respostas precisas. Não se esqueça de voltar para obter mais conhecimento.