0

1 から 2000 までの任意の整数の素因数と個別の素因数を見つけるプログラムのコードを作成しました。ただし、プログラムをループして、ユーザーが停止するまでユーザーに別の数値を要求するコードを作成する必要があります。 . 次のようになります。

別の番号を試しますか?Y(es) または N(o) と言ってください: y //次に、1 から 2000 までの数字を要求すると、プログラムが実行されます。

別の番号を試しますか?Y(es) または N(o): n ---> 「私のプログラムをご利用いただきありがとうございます。さようなら!:

このためのコードを書き込もうとしましたが、ご覧のとおり、最後にコードの代わりにコメントを配置するところで行き詰まりました。ループする方法がわからないので、プログラムが再び繰り返されます。それが私が立ち往生しているように感じる唯一のことです。この問題に対する以下のコードは正しいと思います。プログラムをループする必要があるだけですが、どうすればよいかわかりません。お役に立てれば幸いです。

int main()  {
  unsigned num;
  char response;

  printf("Please enter a positive integer greater than 1 and less than 2000:");
  scanf("%d", &num);
  if (num > 1 && num < 2000){
    printf("The distinctive prime facters are given below: \n");
    printDistinctPrimeFactors(num);
    printf("All of the prime factors are given below: \n");
    printPrimeFactors(num);
  }
  else {
    printf("Sorry that number does not fall within the given range.\n");
  }
  printf("Do you want to try another number? Say Y(es) or N(o): \n");
  response = getchar();
  if(response == 'Y' || answer == 'y')
  //then loop back through program
  //else print "Good Bye!"
  }
  return 0;
}
4

3 に答える 3

1

do {...} while(condition)コードの周りに a を置きたい。条件はresponse =='y' || response =='Y'. あなたがループの外に出て、あなたの良いときは、「さようなら」を印刷してください。このようなもの:

int main() {
    char response;
    do {
        //your code
    } while(response =='y' || response =='Y');
    printf("Goodbye");
    return 0;
}

これは、ループ本体の最初の実行後に条件をチェックするため、通常の while ループとは異なります。

于 2013-01-31T01:59:01.790 に答える
0

基本的な考え方は次のようになります。

char response = 'y';
do {
    workSomeMagic();
    response = getNextInput();
while ((response == 'y') || (response == 'Y'));

明らかに、workSomeMagic()andgetNextInput()を具体化する必要がありますが、特定の条件が真である間にループを実行する方法という当面の問題とは関係ありません。

workSomeMagic()getNextInput()ユーザーから文字を取得しながら、基本的にあなたの数値入力と素因数の計算です。

getchar()ただし、「y」を入力すると、入力ストリームで と の両方が取得され、改行によって次の反復が終了するため、これy<newline>使用することには注意が必要です。

ここにある優れた関数など、行ベースの入力関数を使用することをお勧めします。

于 2013-01-31T01:57:43.960 に答える
0
int main()  
{
char response = 'y';
do {

 /*
  your 
  code
  here
*/
printf("Do you want to try another number? Say Y(es) or N(o): \n");
response = getch();

} while ((response == 'y') || (response == 'Y'));
 printf("Goodbye");
 return 0;
}
于 2014-03-04T05:55:24.123 に答える