题目描述
输入两个整数a和b,计算a+b的和
本题很简单,但是注意此题是多组测试数据,即需要不停的接收系统的测试输入,你都可以计算结果并输出
输入格式
输入两个整数A和B
范围不超过2^10
输出格式
求A+B
样例输入
1 1 10 20
样例输出
2 30
实验代码一:(C语言实现)
//法一:运用~(按位取反)操作实现
#include<stdio.h>
int main () {
int a, b;
while(~ scanf ("%d%d", &a, &b) ){
printf("%d\n", a+b ) ;
}
return 0;
}
//法二:直接采用结束标志符
#include<stdio.h>
int main() {
int a,b;
while (scanf("%d%d",&a,&b) != 'EOF') {
printf("%d",a+b);
}
return 0;
}
在本实验中,我最主要学习到的是:
1、scanf()函数的返回值:
虽然在平时写代码时基本都会用到scanf()函数输入参数,但是并不知道scanf()函数的不同返回值代表的意思,很庆幸本次实验遇到了这个问题.
(1)返回正整数。当正确输入参数时,会返回正确输入参数的个数。
(2)返回整数0。当参数都未被成功输入时。
(3)返回-1。若果遇到错误或遇到end of file,返回值为EOF。
2、EOF 与 \n 的区别:
EOF表示的是文件的结束标志,值等于-1,一般用在文件读取的函数里面,比如fscanf fgetc fgets等,一旦读取到文件最后就返回EOF标志并结束函数调用。
'\n'表示换行符(回车),通常用作一些读取函数的读取结束标志,比如scanf,getchar(),gets()等,一旦遇到'\n'就结束读取并返回。
更多信息,大家可以查阅一些大佬的笔记。
我在学习的过程中使用的编译器是DEV C++,在做这个题目的时候,我输入EOF后发现,编译器会发出警告: [Warning] multi-character character constant [-Wmultichar],看了一下别人的解决办法,但还是没搞懂,希望大佬可以指点一二。
实验代码二:(Java实现)
import java.util.Scanner;
public class EasyAdd {
public static void main(String[] args){
Scanner scanner = new Scanner(System.in);
while(scanner.hasNext()){
int a = scanner.nextInt();
int b = scanner.nextInt();
System.out.println(a+b);
}
}
}
本实验最主要学到的就是hasNext()方法,首先它是个非静态方法,调用时是对象名.方法名进行调用。其次,它是Scanner类的一个方法,判断是否有输入,有输入项,scanner .hasNext()为true,没有输入项,scanner.hasNext()为false。所以本实验中是有输入时进入循环,无输入时结束循环。
才开始学习相关知识,对于很多方面理解的不到位,有什么错误的地方还请大家多多指正,谢谢大家! 虽然很菜,但正在慢慢努力中。