给出一道不多于5位的正整数,要求:1。求出它是几位数 2.分别打印出每一位数字。3.按逆序打印出各位数字。

给出一道不多于5位的正整数,要求:1。求出它是几位数 2.分别打印出每一位数字。3.按逆序打印出各位数字。

请各位帮帮忙看看哪里出错了?运行的结果不符合题目要求。


0806hair 1年前 已收到1个回答 举报

ttriver1314 春芽

共回答了14个问题采纳率:92.9% 举报

简单的逻辑问题。
若a>9999,那么第一个if条件满足,但是下面的所有if也都满足。所以执行的时候会把所有的if条件都执行一遍。解决法很简单,见下:
int a, wan, qian, bai, shi, ge;
cin>> a;
wan = (int)(a / 10000);
qian = (int)(a - wan * 10000) / 1000;
bai = (int)( a - wan * 10000 - qian * 1000) / 100;
shi = (int)( a - wan * 10000 - qian * 1000 - bai * 100) / 10;
ge = (int)( a - wan * 10000 - qian * 1000 - bai * 100 - shi * 10);
if(a > 9999)
{
cout

1年前

10
可能相似的问题
Copyright © 2024 YULUCN.COM - 雨露学习互助 - 16 q. 0.020 s. - webmaster@yulucn.com