2013-10-07 2 views
1

Вот начало очень простой калькулятор, который я делаю, чтобы получить некоторую практику в C. Чтобы объяснить, что я пытаюсь сделать, я просто пытаюсь получить его так, что после каждого этого цикла цикла он добавляет переменная 'num1', в свою очередь, позволяет вам добавить столько чисел, сколько захотите. Как будто я сказал, что это не настоящая пористость, я просто знаком с C и хочу немного попрактиковаться.Как добавить переменную int к себе в C?

Теперь, чтобы привести пример, где этот код идет не так, если я хочу добавить 4 числа (скажем, только 1 + 2 + 3 + 4), по какой-то причине ответ всегда будет 3. Теперь я понимаю, что некоторые из кода более вероятно, заставляет меня, кажется, своего рода глупо ... Так, например,

num3 = num2 + num1; 
     num3 = num1; 

затем перекручивание назад и просто делать это снова, но я подчеркиваю, что все это глупо неправильно либо из-за к моим отчаянным изменениям в коде, пытаясь заставить его работать, или просто потому, что им новый. Спасибо всем, кто может мне помочь.

float num1, num2, num3; 
int loop1 = 0; 
int loop2 = 0; 
int choice; 

printf("Which would you like to do?\n1) Add.\n2) Subtract.\n3) Multiply.\n4) Divide.\n"); 
scanf("%i", &choice); 

switch(choice){ 

    case 1: 
     printf("How many numbers would you like to add?: "); 
     scanf("%i", &loop2); 
     while (loop1 < loop2){ 
     printf("Pleas enter a number: "); 
     scanf("%f", &num1); 
     printf("Pleas enter a number: "); 
     scanf("%f", &num2); 
     num3 = num2 + num1; 
     num3 = num1; 
     loop1 ++; 
     loop1 ++;} 
     printf("%f", num1); 
     break; 
+0

'num3 = num2 + num1,' должен быть 'num3 + = num2 + num1,' поэтому каждый раз, когда вы идете в петлю вы добавляете предыдущее дополнение. Также удалите 'num3 = num1;' вы испортите свое дополнение! – Andres

ответ

2

Запуск этих линий:

num3 = num2 + num1; 
    num3 = num1; 

Причины перезаписать вашу сумму непрерывно. То, что вы хотите сделать, это инициализировать num3 до нуля до вашего цикла, а затем просто добавить каждый номер по очереди. Что-то вроде этого примера, чтобы изменить код, как минимально, насколько это возможно:

num3 = 0; 
while (loop1 < loop2) 
{ 
    printf("Please enter a number: "); 
    scanf("%f", &num1); 
    num3 += num1; 
    loop1++; 
} 
+0

Ahh, очень хорошо большое спасибо. Спасибо, что помогли кому-то, кто зеленый, может быть ха-ха. Если бы я был достаточно высоким, я бы проголосовал за ваш ответ. – pmiccich

+0

Без проблем, рад помочь. Если вы «согласитесь» на ответ, вы получите небольшую репутацию, и это должно помочь вам на вашем пути. –

+0

Там мы идем. Спасибо, что нашли время, чтобы помочь мне. :) – pmiccich

Смежные вопросы