0

宿題でやらなければならないプログラミングの練習で行き詰まっています。完成に近づいていますが、プログラムが新しい入力を古い入力に追加せずに、最後に「次の制限のセットを入力してください」とプログラムにユーザーに尋ねる方法がわかりません。

私の本に出てくるのとまったく同じ質問は次のとおりです。

整数の下限と上限を要求し、下限の 2 乗から上限の 2 乗までのすべての整数の 2 乗の和を計算し、答えを表示するプログラムを作成してください。ユーザーが下限値以下の上限値を入力するまで、プログラムは制限値の入力を求め続け、回答を表示する必要があります。サンプルの実行は次のようになります。

Enter lower and upper integer limits: 5 9
The sums of the squares from 25 to 81 is 255
Enter next set of limits: 3 25
The sums of the squares from 9 to 625 is 5520
Enter next set of limits: 5 5
Done

ここに私が書いたコードがあります:

#include <stdio.h>

int main(void)
{
    int index, lower, upper, square, total, input;

    printf("Enter lower and upper integer limits: ");

    for (input = scanf("%d %d", &lower, &upper); input == 2; printf("Enter the next set of limits: \n"), scanf("%d %d", &lower, &upper))
    {
        for (index = lower; index <= upper; index++)
        {
            square = index * index;
            total += square;
        }
        printf("The sums of the squares from %d to %d is %d\n", lower * lower, upper * upper, total);
    }

    return 0;
}

どんな助けでも大歓迎です!私はこれに1時間以上取り組んできました。

更新、これが私が今持っているものですが、上限と下限が同じ場合に「完了」と出力されないため、まだ正しくありません。

含む

int main(void) { int index、lower、upper、square、total;

printf("Enter lower and upper integer limits: ");

while (scanf("%d %d", &lower, &upper) == 2)
{
    total = 0;
    for (index = lower; upper > index; index++)
    {
        square = index * index;
        total += square;
    }
    printf("The sums of the squares from %d to %d is %d\n", lower * lower, upper * upper, total);
    printf("Enter the next set of limits: \n");
}


return 0;

}

更新* ****

みんなの助けのおかげで、私はついにそれを手に入れたと思います:

含む

int main(void) { int index、lower、upper、square、total;

printf("Enter lower and upper integer limits: ");



while (scanf("%d %d", &lower, &upper) == 2)
{
    while (lower < upper)
    {
    total = 0;
    for (index = lower; index <= upper; index++)
    {
        square = index * index;
        total += square;
    }
        printf("The sums of the squares from %d to %d is %d\n", lower * lower, upper * upper, total);
        printf("Enter the next set of limits: \n");
        scanf("%d %d", &lower, &upper);

}
    printf("Done");
}

return 0;

}

4

3 に答える 3