大家帮着改个程序吧 。。。。

zhang4665032 2008-04-14 02:18:08
#include <iostream>

int main()
{int f();
long n,a,b,c,d,e;
float x;
std::cout<<"输入一个不多于5位的正整数n:"<<std::endl;
std::cin>>n;
{if(n<0)
std::cout<<"请输入正整数:"<<std::endl;

}

x=(double)(n/10000);
if(x>=1)
{
std::cout<<"此数是个五位数:"<<std::endl;

}
else if(x>=1/10)
{
std::cout<<"此数是个四位数"<<std::endl;
}
else if(x>=1/100)
{
std::cout<<"此次数是个三位数:"<<std::endl;

}
else if(x>=1/1000)
{
std::cout<<"此数是个两位数:"<<std::endl;

}
else
{
std::cout<<"此数是个一位数"<<std::endl;

}
a=n/10000;
b=(n-a*10000)/1000;
c=(n-a*10000-b*1000)/100;
d=(n-a*10000-b*1000-c*100)/10;
e=n-a*10000-b*1000-c*100-d*10;


std::cout<<"万位是:"<<a<<std::endl;


std::cout<<"千位是:"<<b<<std::endl;



std::cout<<"百位是:"<<c<<std::endl;



std::cout<<"十位是:"<<d<<std::endl;

std::cout<<"个位是:"<<e<<std::endl;


return 0;
}
输入五位数和四位数程序运行正确 但1 2 3位就不对啦 明明是三位 他却输出是四位 不知那错啦 谢谢
...全文
73 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
baihacker 2008-04-14
  • 打赏
  • 举报
回复

do{
std::cout <<"输入一个不多于5位的正整数n:" <<std::endl;
std::cin>>n;
if(n <0)
std::cout <<"请输入正整数:" <<std::endl;
else
break;
} while(true);
zhang4665032 2008-04-14
  • 打赏
  • 举报
回复
还有一点不对,就输入一个负数后 ,让他提醒输入正整数后,怎样返回,继续输入数字。。。。不懂。 一楼的老大还有一点不完美,能否再改一下。。。下
xuhongshan 2008-04-14
  • 打赏
  • 举报
回复
试了一下,没有问题
kevinchj 2008-04-14
  • 打赏
  • 举报
回复
都快……
kevinchj 2008-04-14
  • 打赏
  • 举报
回复
建议不要用这种方式比较
强制转化成double可能引起不精确等问题。不便于比较多为小数问题。
c_spark 2008-04-14
  • 打赏
  • 举报
回复
ls挺快啊
c_spark 2008-04-14
  • 打赏
  • 举报
回复
注意除法的使用,如整数之间使用'/',只是取整,忽略余数
#include   <iostream> 

int main()
{int f();
long n,a,b,c,d,e;
float x;
std::cout <<"输入一个不多于5位的正整数n:" <<std::endl;
std::cin>>n;
{if(n <0)
std::cout <<"请输入正整数:" <<std::endl;

}

x=(double)(n*1.0/10000);
printf("%lf\n",x);
if(x>=1)
{
std::cout <<"此数是个五位数:" <<std::endl;

}
else if(x>=1.0/10)
{
std::cout <<"此数是个四位数" <<std::endl;
}
else if(x>=1.0/100)
{
std::cout <<"此次数是个三位数:" <<std::endl;

}
else if(x>=1.0/1000)
{
std::cout <<"此数是个两位数:" <<std::endl;

}
else
{
std::cout <<"此数是个一位数" <<std::endl;

}
a=n/10000;
b=(n-a*10000)/1000;
c=(n-a*10000-b*1000)/100;
d=(n-a*10000-b*1000-c*100)/10;
e=n-a*10000-b*1000-c*100-d*10;


std::cout <<"万位是:" <<a <<std::endl;


std::cout <<"千位是:" <<b <<std::endl;


std::cout <<"百位是:" <<c <<std::endl;


std::cout <<"十位是:" <<d <<std::endl;

std::cout <<"个位是:" <<e <<std::endl;


return 0;
}
baihacker 2008-04-14
  • 打赏
  • 举报
回复

#include <iostream>

int main()
{
int f();
long n,a,b,c,d,e;
float x;
std::cout <<"输入一个不多于5位的正整数n:" <<std::endl;
std::cin>>n;
{
if(n <0)
std::cout <<"请输入正整数:" <<std::endl;

}

x=(double)(1.0*n/10000); //把很多1改成1.0了(后面还有),注意浮点数和整数的除法!!!
if(x>=1)
{
std::cout <<"此数是个五位数:" <<std::endl;
}
else if(x>=1.0/10)
{
std::cout <<"此数是个四位数" <<std::endl;
}
else if(x>=1.0/100)
{
std::cout <<"此次数是个三位数:" <<std::endl;

}
else if(x>=1.0/1000)
{
std::cout <<"此数是个两位数:" <<std::endl;

}
else
{
std::cout <<"此数是个一位数" <<std::endl;

}
a=n/10000;
b=(n-a*10000)/1000;
c=(n-a*10000-b*1000)/100;
d=(n-a*10000-b*1000-c*100)/10;
e=n-a*10000-b*1000-c*100-d*10;
std::cout <<"万位是:" <<a <<std::endl;
std::cout <<"千位是:" <<b <<std::endl;
std::cout <<"百位是:" <<c <<std::endl;
std::cout <<"十位是:" <<d <<std::endl;
std::cout <<"个位是:" <<e <<std::endl;


return 0;
}






64,849

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧