黑马程序员技术交流社区

标题: 新手求教,代码如下, [打印本页]

作者: 叶落霞    时间: 2018-5-19 00:43
标题: 新手求教,代码如下,

import java.util.*;//导入工具包
public class textXD1{
        public static void main(String[] args) {
                Scanner sc = new Scanner(System.in);//创建扫描仪
               
                System.out.println("本程序用于计算1~N之间的奇数和");
               
                int A = 1;
               
                int N = 0;
               
                while(A == 1){
                       
                        System.out.println("请输入N的值:");
                        N = sc.nextInt();
                        System.out.println("您输入的N的值为:"+N);
                        System.out.println("确认请输入“1”,修改请输入“0”。");
                        int userQueren = sc.nextInt();
                       
                        if(userQueren == 0 ){
                                A = 1;
                        }else{
                                A = 0;
                        }
                }
                System.out.println("已确认N值为:"+N);
               
                int C = 1; //初始化语句
                int sum = 0; //存钱罐
                while (C <= N){
                        if(C % 2 != 0){                                                                               
                                sum += C;                                                                                                              
                        }
                        C++;
                }
                System.out.println("1~"+N+"之间的奇数和为:"+sum);
        }
}
作者: 叶落霞    时间: 2018-5-19 00:45
如图, 当1000万以内求奇数和时,值为负值,是为何?

QQ截图20180519004411.png (17.39 KB, 下载次数: 7)

QQ截图20180519004411.png

作者: 叶落霞    时间: 2018-5-19 02:26
已经找到原因了,应为数据超出int 格式数据最大值, 吧sum定义为long 就可以了,如图。

QQ截图20180519022547.png (81.7 KB, 下载次数: 1)

QQ截图20180519022547.png

作者: 嘿→那个谁㊣    时间: 2018-5-19 05:15
楼主厉害了!!!!





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2