简单的a+b

题目描述

输入两个整数a和b,计算a+b的和

本题很简单,但是注意此题是多组测试数据,即需要不停的接收系统的测试输入,你都可以计算结果并输出

输入格式

输入两个整数A和B

范围不超过2^10

输出格式

求A+B

样例输入

1 1
10 20

样例输出

2
30

实验代码一:(C语言实现) 

//法一:运用~(按位取反)操作实现

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


//法二:直接采用结束标志符
​
#include
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'就结束读取并返回。

 更多信息,大家可以查阅一些大佬的笔记。

简单的a+b_第1张图片

我在学习的过程中使用的编译器是DEV C++,在做这个题目的时候,我输入EOF后发现,编译器会发出警告: [Warning] multi-character character constant [-Wmultichar],看了一下别人的解决办法,但还是没搞懂,希望大佬可以指点一二。

简单的a+b_第2张图片

 

实验代码二:(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。所以本实验中是有输入时进入循环,无输入时结束循环。

才开始学习相关知识,对于很多方面理解的不到位,有什么错误的地方还请大家多多指正,谢谢大家!         虽然很菜,但正在慢慢努力中。

简单的a+b_第3张图片

 

你可能感兴趣的:(笔记,c语言,java)