このコードを実行すると、do-whileの外側は機能しません。cのdo-whileまたはscanf()が機能しない
が、それは私が再びプログラムを使用するためにy
またはn
を入力することはできません - それは、「あなたが別の番号(Y/N)を入力しますか」
を印刷します。どこで私は間違えましたか?
#include <stdio.h> #include <math.h> int main() { int num, x, sqsm, psqsm; char further; sqsm = 0; do { printf("Enter a natural number-"); scanf("%d", &num); x = num * num; do { sqsm = sqsm + x; x = (sqrt(x) - 1) * (sqrt(x) - 1); } while(x > 0); printf("Sum of squares of first %d natural numbers=%d\n",num,sqsm); printf("Do you want to enter another number(y/n)-"); fflush(stdin); scanf("%c",&further); } while(further == 'y'); }
あなたの 'printf("自然数を入力する - ");はあなたの外側 'do'の中に***でなければなりません。 –
stdinの\ n文字をfflushよりもクリアする方法は他にもあります(出力ストリームでのみ使用する)。 あなたはgetcやfgetsなど何でもできます。 –
@MikeNakisは役に立ちません。私は再び同じ問題に直面している。 –