C语言问题,求解释!

给一个不多于5位的正整数。要求:求出其为几位数;分别打印出一位数字;分别用1,2,3,4,5位正整数作为测试数据进行测试。对不合法的输入做必要处理。... 给一个不多于5位的正整数 。要求:求出其为几位数;分别打印出一位数字;分别用1,2,3,4,5位正整数作为测试数据进行测试。
对不合法的输入做必要处理。
展开
 我来答
402407
2011-11-25 · TA获得超过771个赞
知道小有建树答主
回答量:726
采纳率:50%
帮助的人:895万
展开全部
#include <iostream>
#include <string>
#include <vector>
using namespace std;
int main()
{
std::string aInput;
cout<<"请输入一个5位正整数(q退出输入):"<<endl;
cin >> aInput;
int aInteger = atoi(aInput.c_str());
while ((aInput.size()>5) || (aInput == "q") || (aInteger == 0))
{
if (aInput == "q") return 0;
cout<<"输入有误请重新输入(q退出输入):"<<endl;
cin >> aInput;
aInteger = atoi(aInput.c_str());
}

int aNum;
std::vector<string> astr;
astr.push_back("个");
astr.push_back("十");
astr.push_back("百");
astr.push_back("千");
astr.push_back("万");
for (int i = 1; (i != 6)&&(aInteger != 0); aInteger = aInteger/10,i++)
{
aNum = aInteger%10;
cout<<astr[i-1]<<"位,值为"<<aNum<<endl;
}

return 1;
}

g++编译通过。自己尝试改成c吧
TableDI
2024-07-18 广告
VLOOKUP是Excel中用于垂直查找的函数,其基本用法包括四个参数:1. 查找值:即在数据表首列中需要搜索的值。2. 数据表:包含查找值的单元格区域或数组。3. 返回值所在列数:指定返回查询区域中第几列的值。4. 查找方式:选择精确匹配... 点击进入详情页
本回答由TableDI提供
冷静且清冽的小布丁9482
2011-11-24
知道答主
回答量:30
采纳率:0%
帮助的人:11.6万
展开全部
有什么好解释的。。。问题已经很明确了
方法很简单,定义一个char s[10]数组,用getchar接收,判断是否在' 0'到'9'之间,如果不是,提示不合法,如果是,直接存放到数组中,同时记得每输入一个,通过strlen判断下长度,大于5提示最大输入5位,求出几位数只要打印出strlen(s)即可,分别打印每个数字就用个循环遍历,输出每个字符。。。
解释的够详细了吧,思路给你了,自己写吧,编程这东西,不要不动手,大学生就吃这亏,到了公司啥都不会。。。
追问
追答
额是啥米意思
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
1466074793
2011-11-24 · TA获得超过148个赞
知道答主
回答量:165
采纳率:0%
帮助的人:82.8万
展开全部
上楼的,你的思想太复杂了!只需用一个循环,外加一个求余运算就足够了。。。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式