Olá pessoal,
Despois de muito, mas muito tempo mesmo sem pratica com a lingaguem C, resolvi voltar a treinar apenas para manter o conhecimento.
Desenvolvi um Calculo, porem, estou tendo problemas com erros, das quais, não consegui entender o motivo. Com base nisso pesso ajuda de vocês.
Cenário: Calcular a quantidade de entradas numéricas, média dos registros digitados, media do registros impar, maior valor, menor valor, soma e etc…
Código:
#include <stdio.h>
/* Gerenciador de Erros */
void Message(valor)
{
m[5] = {
"System: Opcao Invalida!",
"System: Numero de entradas excedido!",
"System: Saindo do sistema...",
"System: Digite um valor:",
"System: Gerando Relatorio de resultados"
};
printf( m[valor]+"\n" );
}
/* Repositorio de registros */
int Repository(valor)
{
for(i = x; i<100; x++)
{
n[x] = (string)valor;
break;
}
if ( x >= 100)
{
Message(1);
}
return 0;
}
/* Gerenciador de Cálculo */
int Calcula(valor)
{
int resultado;
int aux;
if( valor == 1 ) /* Soma */
{
for(i = 0; i<100; i++)
{
if( n[i] == "X" )
{
i = 100;
}
else
resultado += (int)n[i];
}
}
else if( valor == 2 ) /* Quantidade de números */
{
for(i = 0; i<100; i++)
{
if( n[i] == "X" )
{
resultado = i+1;
i = 100;
}
}
}
else if( valor == 3 ) /* Média dos números */
{
for(i = 0; i<100; i++)
{
if( n[i] == "X" )
{
resultado = (int)n[i-1];
aux = i+1;
}
resultado = resultado/aux;
}
}
else if( valor == 4 ) /* Maior valor */
{
aux = n[0];
for(i = 0; i<100; i++)
{
if( n[i] != "X" )
{
if( aux < n[i] )
{
aux = (int)n[i];
]
}
else
i = 100;
}
resultado = aux;
}
else if( valor == 5 ) /* Menor valor */
{
aux = n[0];
for(i = 0; i<100; i++)
{
if( n[i] != "X" )
{
if( aux > n[i] )
{
aux = (int)n[i];
]
}
else
i = 100;
}
resultado = aux;
}
else if( valor == 6 ) /* Média de pares */
{
for(i = 0; i<100; i++)
{
if( n[i] != "X" )
{
if( n[i]%2 == 0 )
{
resultado += n[i];
}
aux += 1
}
resultado = resultado/aux;
}
}
else if( valor == 7 ) /* Percentual de impares */
{
for(i = 0; i<100; i++)
{
if( n[i] != "X" )
{
if( n[i]%2 == 1 )
{
aux += 1;
}
resultado += 1;
}
else
resultado = (100*aux)/resultado;
}
}
return resultado
}
int main()
{
int i = 0;
static int x = 0;
string n[100];
string input = 'w';
/* Inicializando vetor */
for(i = 0; i<100; i++)
{
n[i] = 'X';
}
/* Gerenciador de resultados */
do
{
printf( "A. Novo Numero\n" );
printf( "B. Soma dos Numeros\n" );
printf( "C. Quantidade de Numeros\n" );
printf( "D. Media de Numeros\n" );
printf( "E. Maior Numero\n" );
printf( "F. Menor Numero\n" );
printf( "G. Media de Numero Par\n" );
printf( "H. Media de Numero Impar\n" );
printf( "I. Exit\n" );
printf( "\n" );
scanf( "%s", &input );
switch ( input ) {
case 'A':
Message(3);
scanf("%d", Repository(&valor));
break;
case 'B':
Tester();
break;
case 'D':
Tester();
break;
case 'E':
Tester();
break;
case 'F':
Tester();
break;
case 'G':
Tester();
break;
case 'H':
Tester();
break;
case 'I':
Message(2);
break;
default:
Message(0);
break;
}
} while (input == 'I');
printf( "\n" );
Message(4);
printf( "Soma dos valores obtidos: %d\n", Calcula(1) );
printf( "Quantidade de números obtidos: %d\n", Calcula(2) );
printf( "Media dos numeros obtidos: %d\n", Calcula(3) );
printf( "Maior numero obtido: %d\n", Calcula(4) );
printf( "Menor numero obtido: %d\n", Calcula(5) );
printf( "Media dos numeros pares obtidos: %d\n", Calcula(6));
printf( "Percentual de numeros impares obtidos: %d\n", Calcula(7));
}
obs: O método Teste(), ainda não foi implementado.
Problemas com array e scanf…
Problemas de sintaxe “elseif” corrigidas.
