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

就是这道
还有这道
都请帮忙解决一下,谢谢了

代码如下,望采纳!

第一题:输入N的!

#include <stdio.h>
#include <stdlib.h>
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 <stdio.h>
#include <stdlib.h>
#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;
}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-10-18
关键是判断第一行数据个数。
用 gets(str); 读入1行,用 n = sscanf(str,"%d %d",&a,&b); 获得1行数据 是1是2
然后分别对待2种情况。

#include<stdio.h>
#include <stdlib.h>

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;i<n;i++){
scanf("%d %d",&a,&b);
printf("%d\n",a+b);
}
return 0;
}

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网