引言
学了一段时间C++,但是基本上都是C语言的复习,emmm,好像时间也不长。哈哈哈,反正现在就是进展缓慢,老师布置了几道作业,这里对作业中的程序题进行回答。
题目
题目1
题目
编写一个程序。要求输入一个5位正整数,然后分解出它的每位数字,并将这些数字按间隔2个空格的逆序形式打印输出。例如,用户输入42339,则程序输出如下结果:
9 3 3 2 4
作答
这里输入有限制,所以在输入后,要进行判断,判断输入数字是否合法。在确定输入合法后,我们进行分解数字,可以先定义一个整形数组来存储分解后的数字,我们以 23456为例。
不难发现,23456对10取余可以得到个位数字6,(即 23456 % 10 ==6 );23456整除10之后强制类型转化为整形变成2345,2345再对10取余可以得到这时候的个位数字5(即 23456 / 10 % 10 ==5);同理可得:(23456 / 100 % 10 ==4);(23456 / 1000 % 10 ==3);(23456 / 10000 % 10 ==2)。这样就可以通过表达式的规律借用循环语句将数字分解出来了,输出的时候同样借助循环语句。
下面代码供参考:
#include <iostream>
#include<math.h>
using namespace std;
int main()
{
int n;
int a[5];
cout << "输入一个5位正整数" << endl;
cin >> n;
while (n < 10000 || n> 100000)
{
cout << "非法数字,请重新输入" << endl;
cin >> n;
}
for (int i = 0; i < 5; i++)
a[i] = int(n / pow(10, i)) % 10;
for (int i = 0; i < 5; i++)
cout << a[i] << " ";
return 0;
}
题目2
题目
输入三个整数,求出其中最小数
作答
因为这里数据处理量非常小,而且不同情况较少,所以我选择判断大小进行输出的方式。
我们在输入三个数字后,选择a和b进行判断大小,若a大,我们就接着判断b和c,根据结果输出b或c;若b大,我们就接着判断a和c,根据结果输出a或c。也就是就是说,三个数字比较大小,我们只需要进行两次判断就可以了得出最小值了。
用流程图会更好理解:
下面代码供参考:
#include <iostream>
using namespace std;
int main()
{
int a, b, c;
cout << "请输入三个数" << endl;
cin >> a >> b >> c;
cout << "最小数是:";
if (a > b)
if (b > c)
cout << c << endl;
else
cout << b << endl;
else
if (a > c)
cout << c << endl;
else
cout << a << endl;
return 0;
}
结语
题目很简单,感谢阅读。