美文网首页
(HDU)A+B for Input-Output Practi

(HDU)A+B for Input-Output Practi

作者: skyjerry | 来源:发表于2017-03-01 20:41 被阅读0次

这个学期开始接触 ACM ,查阅相关资料得知,大致有以下八种输入输出格式,题目来自 HDU

A+B for Input-Output Practice (I)

输入样例:

1 5
10 20

输出样例:

6
30

由上可知,
有若干组输入数据;有若干组输出数据,每组输出数据占一行。
于是,我们用以下语句来读取评测系统中输入文件的内容:

while(scanf(...) != EOF)

完整代码:

#include <stdio.h>
int main(){
    int a, b;
    while(scanf("%d %d", &a, &b) != EOF){
        printf("%d\n", a + b);
    }
    return 0;
}

A+B for Input-Output Practice (II)

输入样例:

2
1 5
10 20

输出样例:

6
30

由上可知,
先输入一个整数,确定接下来要输入几组数据,输出格式不变。
于是,我们可以先用 scanf 确定要输入多少组数据,然后用for循环进行输入

完整代码:

#include <stdio.h>
int main(){
    int a, b, i, N;
    scanf("%d", &N);
    for(i=0;i<N;i++){
        scanf("%d %d", &a, &b);
        printf("%d\n", a + b);
    }
    return 0;
}

A+B for Input-Output Practice (III)

输入样例:

1 5
10 20
0 0

输出样例:

6
30

由上可知,
有若干组输出数据,题目给定了输入结束条件即输入 0 0 ,输出不变。
于是,我们根据上一题,在 while 循环条件加上判断条件或在内部加上判断条件即可
完整代码:

#include <stdio.h>
int main(){
    int a, b;
    while (scanf("%d %d", &a ,&b) && (a != 0 || b != 0)){
        printf("%d\n", a + b);
    }
    return 0;
}

A+B for Input-Output Practice (IV)

输入样例:

4 1 2 3 4
5 1 2 3 4 5
0 

输出样例:

10
15

由上可知,
输入数据有若干组,每组第一个数字确定接下来该组的数据个数,为0时结束。
于是,我们加上判断条件循环输入输出
完整代码:

#include <stdio.h>
int main(){
    int a, N, i, sum;
    while (scanf("%d", &N) && N != 0){
        sum = 0;
        for(i=0;i<N;i++){
            scanf("%d", &a);
            sum += a;
        }
        printf("%d\n", sum);
    }
    return 0;
}

A+B for Input-Output Practice (V)

输入样例:

2
4 1 2 3 4
5 1 2 3 4 5

输出样例:

10
15

由上可知,
先输入一个整数,确定接下来要输入几组数据;每组输入数据的第一个数据,确定该组的数据个数。
于是,我们用两个循环实现
完整代码:

#include <stdio.h>
int main(){
    int a, N, i, j, sum, n;
    scanf("%d", &n);
    for(i=0;i<n;i++){
        scanf("%d", &N);
        sum = 0;
        for(j=0;j<N;j++){
            scanf("%d", &a);
            sum += a;
        }
        printf("%d\n", sum);
    }
    return 0;
}

A+B for Input-Output Practice (VI)

输入样例:

4 1 2 3 4
5 1 2 3 4 5

输出样例:

10
15

由上可知,
有若干组输入数据,当读取完毕时结束,输出所有数据,与上题类似
完整代码:

#include <stdio.h>
int main(){
    int a, N, j, sum;
    while (scanf("%d", &N) != EOF){
        sum = 0;
        for(j=0;j<N;j++){
            scanf("%d", &a);
            sum += a;
        }
        printf("%d\n", sum);
    }
    return 0;
}

A+B for Input-Output Practice (VII)

输入样例:

1 5
10 20

输出样例:

6

30

由上可知,
与第一题类似,只是多输出了一个空行
完整代码:

#include <stdio.h>
int main(){
    int a, b;
    while (scanf("%d %d", &a, &b) != EOF){
        printf("%d\n\n", a + b);
    }
    return 0;
}

A+B for Input-Output Practice (VIII)

输入样例:

3
4 1 2 3 4
5 1 2 3 4 5
3 1 2 3

输出样例:

10

15

6

本题输出格式可能会疏忽,即最后一行输出后没有空行
完整代码:

#include <stdio.h>
int main(){
    int a, i, sum, j, N, n;
    scanf("%d", &N);
    for(i=0;i<N;++i){
        sum = 0;
        scanf("%d", &n);
        for(j=0;j<n;++j){
            scanf("%d", &a);
            sum += a;
        }
        printf("%d\n", sum);
        if(N != i+1){
            printf("\n");
        }
    }

    return 0;
}

相关文章

网友评论

      本文标题:(HDU)A+B for Input-Output Practi

      本文链接:https://www.haomeiwen.com/subject/tcscgttx.html