0
私のプログラムが正しく動作していない理由を理解できません。それが欲しい。それをした後、私のプログラムは私が望むように繰り返す。貧弱な説明には申し訳なく思っていますが、「自分のプログラム」の下にある画像が、何が起こっているのかを説明できるよりも優れていると思います。私のCプログラムが正しく実行された後、私に望ましくない結果が出る理由を理解できない
#include <stdio.h>
#include <stdlib.h>
int main()
{
float fahrenheit,celsius;
char selection[30];
char *idontknow;
long trueselection;
do{
printf("1: Fahrenheit to Celsius.");
printf("\n2: Celsius to Fahrenheit.");
printf("\n3: Quit program.\n");
fgets(selection,10,stdin); //This line and the line below are in the program
//so that if the user inputs a character instead of an integer it does not infinite loop.
trueselection = strtol(selection, &idontknow, 10);
if(trueselection==1){
printf("Enter temperature in Fahrenheit: ");
scanf("%f",&fahrenheit);
celsius= (fahrenheit - 32)/1.8;
printf("Temperature in Celsius: %.2f\n\n\n",celsius);
}
else if(trueselection==2){
printf("Enter temperature in Celsius: ");
scanf("%f",&celsius);
fahrenheit= (celsius*1.8)+32;
printf("Temperature in Fahrenheit: %.2f\n\n\n",fahrenheit);
}
else if(trueselection==3){ //This "else if" statement is so the program does not say invalid selection before exiting if 3 is entered.
return 0;
}
else{
printf("Invalid selection !!!\n\n\n");
}
}
while(trueselection!=3); //This line tells the program to repeat back to line 3 if any selection but 3 is selected.
}
私はまだ苦労の理解を少し持っていて申し訳ありません。 fgets()はif文から\ nを読み込んでいますか? – RyanK
Nvm、ありがとうBLUEPIXYこれは私がコンピュータ言語を初めてプログラミングして以来初めての3週目ですが、このサイトの用語集を理解するのは苦労しますが、何度か繰り返したリンクを再読したところ、私はscanf()とfgets()を混在させることができませんでした。 – RyanK