C语言问题,求解释!
给一个不多于5位的正整数。要求:求出其为几位数;分别打印出一位数字;分别用1,2,3,4,5位正整数作为测试数据进行测试。对不合法的输入做必要处理。...
给一个不多于5位的正整数 。要求:求出其为几位数;分别打印出一位数字;分别用1,2,3,4,5位正整数作为测试数据进行测试。
对不合法的输入做必要处理。 展开
对不合法的输入做必要处理。 展开
展开全部
#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吧
#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 广告
2024-07-18 广告
VLOOKUP是Excel中用于垂直查找的函数,其基本用法包括四个参数:1. 查找值:即在数据表首列中需要搜索的值。2. 数据表:包含查找值的单元格区域或数组。3. 返回值所在列数:指定返回查询区域中第几列的值。4. 查找方式:选择精确匹配...
点击进入详情页
本回答由TableDI提供
展开全部
有什么好解释的。。。问题已经很明确了
方法很简单,定义一个char s[10]数组,用getchar接收,判断是否在' 0'到'9'之间,如果不是,提示不合法,如果是,直接存放到数组中,同时记得每输入一个,通过strlen判断下长度,大于5提示最大输入5位,求出几位数只要打印出strlen(s)即可,分别打印每个数字就用个循环遍历,输出每个字符。。。
解释的够详细了吧,思路给你了,自己写吧,编程这东西,不要不动手,大学生就吃这亏,到了公司啥都不会。。。
方法很简单,定义一个char s[10]数组,用getchar接收,判断是否在' 0'到'9'之间,如果不是,提示不合法,如果是,直接存放到数组中,同时记得每输入一个,通过strlen判断下长度,大于5提示最大输入5位,求出几位数只要打印出strlen(s)即可,分别打印每个数字就用个循环遍历,输出每个字符。。。
解释的够详细了吧,思路给你了,自己写吧,编程这东西,不要不动手,大学生就吃这亏,到了公司啥都不会。。。
追问
额
追答
额是啥米意思
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
上楼的,你的思想太复杂了!只需用一个循环,外加一个求余运算就足够了。。。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询