Возврат переменной к ее исходному значению

#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; }