浙大城市学院题库1019

Description

这还是一个A+B问题,与1000不同的是,它有若干组测试数据。

Input

有若干组测试数据,每个测试数据有两个整数a,b(0≤a,b≤10)

Output

每个测试数据输出一行,a+b的答案

Sample #1

Input

1 2
1 2

Output

3
3

思路

用while循环中以~scanf来作为循环条件,若正确输入参数则为真,并打印a+b的值。

关于 while (~scanf(...)) 的解释:

~ 是按位取反操作符。在C语言中,按位取反操作符 ~ 会对一个整数进行二进制取反,即将所有的 0 变成 1,所有的 1 变成 0。
当 scanf 成功读取数据时,它返回读取成功的项数。在这种情况下,scanf 返回 2(因为读取了两个整数)。
当 scanf 失败或者到达文件末尾时,它返回 EOF (End Of File)。EOF 是一个预定义的宏,通常定义为 -1 或者其他负数。
在这个 while 循环中,~scanf(...) 的作用是将 scanf 返回的值进行按位取反。如果 scanf 正常返回 2,则 ~2 会是一个负数,非零值会使 while 循环继续执行。
如果 scanf 失败或到达文件末尾,返回的是 EOF,那么 ~EOF 将是一个正数,通常是 ~(-1) = 0,这会导致 while 循环条件为假,循环终止。

代码

#include
int main(){
    int a,b;
    while(~scanf("%d %d",&a&b)){
    printf("%d",a+b);
    return 0;

    }
}

你可能感兴趣的:(算法,数据结构)