C语言 输入多组数求和加组怎么写数

就是这道还有这道都请帮忙解决一下,谢谢了
2025-03-26 22:17:44
推荐回答(2个)
回答1:

代码如下,望采纳!

第一题:输入N的!

#include 
#include 
int main(void)
{
    int N = 0;
    int i = 0;
    int a = 0, b = 0;//每行的两个数
    int *arr;//存放每行的和
    scanf("%d", &N);
    arr = (int *)malloc(sizeof(int) * N);
    for(i = 0; i < N; i++)
    {
        scanf("%d%d", &a, &b);
        arr[i] = a + b;
    }
    for(i = 0; i < N; i++)
    {
        printf("%d\n", arr[i]);
    }
    return 0;
}

第2题:输入0 0结束的!

#include 
#include 
#define N 10000
int main(void)
{
    int i = 0;
    int cnt = 0;
    int a = 0, b = 0;//每行的两个数
    int *arr;//存放每行的和
    arr = (int *)malloc(sizeof(int) * N);
    for(cnt = 0; cnt < N; cnt++)
    {
        scanf("%d%d", &a, &b);
        if(a == 0 && b == 0) break;
        arr[cnt] = a + b;
    }
    for(i = 0; i < cnt; i++)
    {
        printf("%d\n", arr[i]);
    }
    return 0;
}

回答2:

关键是判断第一行数据个数。
用 gets(str); 读入1行,用 n = sscanf(str,"%d %d",&a,&b); 获得1行数据 是1是2
然后分别对待2种情况。

#include
#include

main(){
static int a,b,n,i;
char str[80];
gets(str);
n = sscanf(str,"%d %d",&a,&b);
if (n==2) {
printf("%d\n",a+b);
while(1){
scanf("%d %d",&a,&b);
if ((a==0) && (b==0)) return 0;
printf("%d\n",a+b);
};
}
n = a;
for (i=0;iscanf("%d %d",&a,&b);
printf("%d\n",a+b);
}
return 0;
}