2017-07-28 108 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(); 
} 
相关问题