#c
Вопрос:
Код работает идеально, за исключением вывода для «запуска». Я запускаю код, который при вводе двух чисел будет добавлять каждое число между этими двумя числами. Пример: я выбираю 1 и 7, чтобы 1 2 3 4 5 6 7.
int main() { int start, end; int sum = 0; int i; start = 0; printf("Start integer: "); scanf("%d", amp;start); printf("nEnd integer: "); scanf("%d", amp;end); while (1) { while(start lt;= end){ sum = start; start; } break; } printf("The sum between %d and %d is %dn", start, end, sum); return 0; }
Кто-нибудь знает, как перевести 8 в 1?
Комментарии:
1. Вам нужно использовать вторую переменную для хранения исходного значения.
Ответ №1:
Вы увеличиваете start
с start;
таким образом, чтобы при попытке печати это было какое-то большее значение.
Если вы используете такой for
цикл, вы можете избежать этой проблемы, а также не иметь 2 while
циклов! Первый вариант while(1)
излишен.
for (int i = start; i lt;= end; i ) sum = i;
Ответ №2:
int main() { int start,end, orig_start; int sum = 0; int i; start=0; printf("Start integer: "); scanf("%d", amp;start); orig_start = start; printf("nEnd integer: "); scanf("%d", amp;end); while (1){ while(startlt;=end){ sum = start; start; } break; } printf("The sum between %d and %d is %dn", orig_start, end, sum); return 0; }
Просто сохраните исходный пользовательский ввод во временную переменную и используйте его в выводе терминала.
Ответ №3:
#include lt;stdio.hgt; int main() { int start, end, counter; int sum = 0; printf("Start integer: "); scanf("%d", amp;start); printf("nEnd integer: "); scanf("%d", amp;end); counter = start; while(counter lt;= end) { sum = counter; counter ; } printf("The sum between %d and %d is %dn", start, end, sum); return 0; }
Ответ №4:
int main() { int start,end; int sum = 0; int i; //can be deleted, because its unused start=0; //can be deleted, because you override it with scanf() printf("Start integer: "); scanf("%d", amp;start); printf("nEnd integer: "); scanf("%d", amp;end); int org_start = start; //you need to save the startvalue to print it later while (1){ //Can be deleted, the next while is enough while(startlt;=end){ sum = start; start; } break; } //you need to print the org_start instead of the normal start printf("The sum between %d and %d is %dn", org_start, end, sum); return 0; }