Java 简单的乘法竟然算不出来 哪错了啊

4*7怎么可能等于364啊TT求解答哪错了怎么改importjava.util.Scanner;publicclassMain{publicstaticvoidmain(... 4*7怎么可能等于364啊T T求解答 哪错了 怎么改
import java.util.Scanner;public class Main { public static void main(String[] args) { Scanner s = new Scanner(System.in); String str = null; char a; int num=0,i; int b[ ]={7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2}; System.out.println("请输入18位的身份证号码:"); str = s.next(); System.out.println("您输入的是:"); System.out.println(str); if(18==str.length()){ for(i=0;i<17;i++){ a=str.charAt(i); System.out.println(a); System.out.println(b[i]); num=a*b[i]; System.out.println(num); } System.out.println("正确"); } else System.out.println("错误"); }}
展开
 我来答
让猫飞一会儿
2015-01-30 · TA获得超过1120个赞
知道小有建树答主
回答量:540
采纳率:80%
帮助的人:280万
展开全部
把 num=a*b[i];
改成:
num=(a-48)*b[i];

因为你输入的是char型4,在乘法里自动转成int 型,就是52
你要从ASC码里减去48,得到实际值
匿名用户
2015-01-30
展开全部
不要直接把char类型的数值和数字相乘
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式