Я застрял в упражнении по программированию, которое я должен делать для домашней работы. Я подошел так близко к его завершению, но я просто не могу понять, как программа попросит пользователя «Ввести следующий набор ограничений» в конце без добавления новой записи на старый вход.Как я могу заставить эту C-программу принимать новый вход, не добавляя его на старый вход?
Вот вопрос именно так, как он появляется в моей книге:
написать программу, которая запрашивает нижние и верхние целые пределы, вычисляет сумму всех целых квадратов от квадрата нижнего предела до площади верхнего предела и отображает ответ. Затем программа должна продолжать запрашивать ограничения и отображать ответы до тех пор, пока пользователь не введет верхний предел, который равен или меньше нижнего предела. Образец запуска должен выглядеть примерно так:
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;
}
Любая помощь будет высоко ценится! Я работаю над этим более часа.
Update, вот что у меня есть сейчас, но это все-таки не право, так как он не печатает «сделано», когда верхние и нижние пределы одинаковы:
включает
Int основных (вакуума) { индекс int, нижний, верхний, квадратный, общий;
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;
}
UPDATE* ****
Благодаря помощи каждому я думаю, что я, наконец, получил его:
включаетINT Главный (void) { индекс int, нижний, верхний, квадратный, общий;
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;
}
Подсказка: Я не вижу каких-либо тест на «верхний» больше чем «ниже» в вашем коде. – StarNamer