2017-07-28 121 views
2

因此,基本上我需要詢問用戶他要添加多少個數字,然後讓他輸入數字,但我不知道如何添加數字而不需要添加數字存儲在相同的變量,或如何添加相同的變量,但具有不同的值,這是在帕斯卡非常容易,但我不知道怎麼做在C.在循環中添加具有不同值的相同變量

這是我的代碼到目前爲止.. 。

int main(int argc, char *argv[]) { 
    int i, n, age; 
    printf("How many numbers do you want to add?\n"); 
    scanf("%d", &n); 
    for (i = 1; i <= n; i = i++) { 
     printf("type in the number:\n"); 
     scanf("%d", &age); 
    } 
    return 0; 
} 
+3

後的代碼,而不是一個鏈接。你會從社區獲得更好的接待。 –

+0

'i = i ++'(這是未定義的行爲) - >'i ++' – BLUEPIXY

+0

好的,謝謝,下次還會去做 –

回答

3

要計算輸入數字的總和,您可以爲總數定義一個變量,並在輸入時添加每個數字。

注意,有在代碼中的未定義行爲:i = i++;你不能同時具有副作用和修改i在同一個表達式,除非有一個序列點,有些東西你是不可能在初學者的代碼中查找。只需i++就足以增加i

這裏是如何解決和完成代碼:

#include <stdio.h> 

int main(int argc, char *argv[]) { 
    int i, n, age, total = 0; 
    printf("How many numbers do you want to add?\n"); 
    if (scanf("%d", &n) == 1) { 
     for (i = 0; i < n; i++) { 
      printf("type in the number:\n"); 
      if (scanf("%d", &age) != 1) 
       break; 
      total = total + age; 
     } 
     printf("the sum is %d\n", total); 
    } 
    return 0; 
} 
0
int main(){ 
    int i,n ,age,sum=0; 
    printf("How many numbers do you want to enter\n"); 
    scanf("%d",&n); 
    for(i = 1;i<=n;i++){ 
     printf("Enter the age"); 
     scanf("%d",&age); 
     sum+=age; 
    } 
    printf("%d\n",sum); 
    return; 
} 
+2

'int ... sum;' - >' int ... sum = 0;','printf('%d',sum);' - >'printf(「%d \ n」,sum);','return;' - >'return 0 ;' – BLUEPIXY

+0

2 out of 3,going going,另外加上'#include ' – chqrlie

+0

感謝您的幫助人,它的工作原理 –

0

使用數組。

int age[100]; 

並在您的for循環中存儲該數組中的所有年齡段。

scanf("%d",&age[i]); 
+0

感謝您的幫助,您的解決方案也可以工作 –

0

我相信這是你在找什麼最好的辦法:

#include <stdio.h> 

int main() 
{ 
    int n; 
    printf("how many numbers do you want to add?\n"); 
    scanf("%d", &n); 
    if (n <= 0) 
    { 
     printf("Error\n"); 
     getchar(); 
     return 0; 
    } 

    int age[n]; 

    for (int i = 0; i < n; i++) 
    { 
     printf("type in a number:\n"); 
     scanf("%d", &age[i]); 
     while (age[i] <= 0) 
     { 
      printf("Insert a positive number:\n"); 
      scanf("%d", &age[i]); 
     } 
    } 
} 
0
#include <stdio.h> 
#include <stdlib.h> 

int main(){ 
    int i,n,sum=0; 
    int *age; 
    fflush(stdin); 
    printf("How many numbers do you want to enter: "); 
    scanf("%d",&n); 
    printf("\n"); 
    age = (int*) malloc (sizeof(int)*n); 
    if(age == NULL) 
     return -1; 

    for(i = 0; i < n; i++){ 
     printf("Enter the age: "); 
     scanf("%d",&age[i]); 
    } 
    printf("\n"); 

    for(i = 0; i < n; i++) 
     printf("Age[%d] %d\n",i, age[i]); 

    /*Finally free the memory here*/` 
    free(age); 
    return 0; 
} 
2
#include <stdio.h> 
int main(){ 
    int n ,age,sum = 0; 
    printf("How many numbers do you want to enter\n"); 
    scanf("%d",&n); 
    while (n > 0) { 
     printf("Enter the age"); 
     scanf("%d",&age); 
     sum += age; 
     n--; 
    } 
    printf("%d",sum); 
    return 0; 
} 

這是例如在需要一個變化較小。

+0

您通過保存變量實現了什麼功能? –

+1

我喜歡用盡可能少的變量來實現解決方案的代碼,這是唯一的原因。爲什麼要在N個變量中取得N個變量... – deepakl

+1

使代碼更具可讀性,易於理解且不會造成性能損失? –

0
#include<stdio.h> 

void main() 
{ 
    int i,num,age; 
    clrscr(); 
    printf("How many number do you have to enter "): 
    scanf("%d",&num); 
    for(i=0;i<num;i++) 
    { 
     printf("enter the age[%d]",i+1); 
     scanf("%d",&age); 
    } 
    return(); 
} 
相關問題