-1
I’m trying to ask for input to a string and read it as a halting condition of a loop but I’m not getting it. Logic Error.
#include <stdio.h>
#include <locale.h>
#include <windows.h>
#include <string.h>
double calculoFatorial (double x) {
//Variáveis
double i,f = 1;
//Lógica
for(i = x; i > 0; i--){
f = f * i;
}
//Retorno
return (f);
}
int inicializando (void) {
//Variáveis
int fatoriando;
double saida;
//Código
printf("\n - Me diga um número e direi seu fatorial: ");
scanf("%d",&fatoriando);
saida = calculoFatorial(fatoriando);
printf(" - O fatorial do número %d é: %.lf",fatoriando,saida);
//Retorno
return (0);
}
int main (void){
//Título
SetConsoleTitle("Calculadora de Fatorial");
//Regionalizando
printf("O idioma corrente no código é: %s\n",setlocale(LC_ALL,""));
//Variáveis
char resposta[1];
//Lógica
do{
inicializando();
printf("\n\n - Deseja fazer um novo calculo? (S/N): ");
scanf("%s",resposta);
}while(resposta[0] = "N");
return(0);
}
There’s no point in you declaring
char resposta[1];
because a string in C always adds a terminator character ' 0', so the string that should store a single character must be 2. In your case just declarechar resposta;
, this is a single character and utliizarscanf(" %c", &resposta);
and}while(resposta == 'N');
. But if you want to work with strings then use the functionstrcmp
for comparison.– anonimo