判断一个整型数据有几位v2.0 从键盘输入一个整型数据(int型),用switch语句和循环语句编写程序判断该整数共有几位,并输出包含各个数字的个数。例如,从键盘输入整数16644,该整数共有5位,其中有1个1,2个6,2个4。
时间: 2023-05-31 16:17:57 浏览: 477
### 回答1:
可以使用循环语句和switch语句来判断一个整型数据有几位,并输出包含各个数字的个数。具体步骤如下:
1. 从键盘输入一个整型数据,保存在变量num中。
2. 定义一个数组count,用于保存各个数字出现的次数,初始值都为0。
3. 使用循环语句,每次将num除以10,判断商是否为0,如果不为0,则将商赋值给num,并将余数作为数组count的下标,对应的元素加1。
4. 统计数字的个数,遍历数组count,输出每个数字出现的次数。
下面是示例代码:
```c++
#include <iostream>
using namespace std;
int main() {
int num, count[10] = {0}; // 定义变量和数组
cout << "请输入一个整数:";
cin >> num; // 从键盘输入整数
int digit; // 定义变量digit,用于保存每一位的数字
int n = 0; // 定义变量n,用于保存数字的位数
while (num != 0) { // 循环判断每一位的数字
digit = num % 10; // 取出最后一位数字
count[digit]++; // 对应的数字个数加1
num /= 10; // 去掉最后一位数字
n++; // 位数加1
}
cout << "该整数共有" << n << "位,其中:\n";
for (int i = 0; i < 10; i++) { // 遍历数组count,输出每个数字出现的次数
if (count[i] != 0) {
cout << i << "出现了" << count[i] << "次\n";
}
}
return 0;
}
```
运行结果:
```
请输入一个整数:16644
该整数共有5位,其中:
1出现了1次
4出现了2次
6出现了2次
```
### 回答2:
这个问题可以用循环和switch语句来解决。首先,我们需要从键盘输入这个整数,这可以使用cin函数来完成。然后,我们可以用while循环来获得这个整数的每一位数字。每次循环时,我们需要用switch语句来判断这个数字是几,并分别对应计数器加1。最后,我们可以用cout函数输出各个数字的个数。
下面是一个具体的程序示例:
```
#include <iostream>
using namespace std;
int main() {
int num, count = 0, digit, ones = 0, twos = 0, threes = 0, fours = 0, fives = 0, sixes = 0, sevens = 0, eights = 0, nines = 0;
cout << "请输入一个整数:" << endl;
cin >> num;
while (num != 0) {
digit = num % 10;
switch (digit) {
case 0:
break;
case 1:
ones++;
break;
case 2:
twos++;
break;
case 3:
threes++;
break;
case 4:
fours++;
break;
case 5:
fives++;
break;
case 6:
sixes++;
break;
case 7:
sevens++;
break;
case 8:
eights++;
break;
case 9:
nines++;
break;
}
num /= 10;
count++;
}
cout << "这个整数共有" << count << "位" << endl;
cout << "其中有" << ones << "个1," << twos << "个2," << threes << "个3," << fours << "个4," << fives << "个5," << sixes << "个6," << sevens << "个7," << eights << "个8," << nines << "个9" << endl;
return 0;
}
```
这个程序可以正确地输出整数的位数以及各个数字的个数。用户可以输入任意整数,程序都可以正确处理。如果我们输入16644,程序会输出如下结果:
```
请输入一个整数:
16644
这个整数共有5位
其中有1个1,2个6,2个4,0个2,0个5,0个3,0个7,0个8,0个9
```
### 回答3:
本题需要编写一个可以判断整型数据有几位,并输出各数字个数的程序。这个程序可以用switch语句和循环语句实现。
首先,我们需要从键盘输入一个整型数据。这可以用cin语句实现:
```
int num;
cin >> num;
```
接着,我们可以用while循环和除10运算来计算该整数的位数。每次循环时,我们可以将num除以10,直到num为0为止。
```
int count = 0;
while (num != 0) {
num /= 10;
count++;
}
```
接下来,我们可以用一个数组来统计各数字出现的次数。数组的下标表示数字,数组的值表示该数字出现的次数。例如,如果数字1出现了3次,那么count[1]就等于3。
```
int count[10] = {0};
```
在循环中,我们可以用取余运算获取num的最低位数字,然后将该数字对应的count值加1。
```
while (num != 0) {
int digit = num % 10;
count[digit]++;
num /= 10;
}
```
最后,我们可以用循环输出各数字出现的次数。如果count[i]不为0,说明数字i在输入的整数中出现了count[i]次。
```
for (int i = 0; i < 10; i++) {
if (count[i] != 0) {
cout << "数字" << i << "出现了" << count[i] << "次" << endl;
}
}
```
完整代码如下:
```
#include <iostream>
using namespace std;
int main() {
int num;
cin >> num;
int count = 0;
while (num != 0) {
num /= 10;
count++;
}
int count[10] = {0};
while (num != 0) {
int digit = num % 10;
count[digit]++;
num /= 10;
}
for (int i = 0; i < 10; i++) {
if (count[i] != 0) {
cout << "数字" << i << "出现了" << count[i] << "次" << endl;
}
}
return 0;
}
```
阅读全文