输入一行数字字符,请用数组元素作为计数器来统\n计每个数字字符的个数。用下标为0的元素统计字\n符0的个数,用下标为1的元素统计字符t的个数以
时间: 2023-05-01 08:02:20 浏览: 66
题目要求输入一个行数字字符,要求用数组元素作为计数器来统计每个数字字符的个数。用下标为0的元素统计数字0的个数,用下标为1的元素统计数字1的个数,依此类推。最后输出统计结果,用下标为0的元素输出数字0的个数,用下标为1的元素输出数字1的个数,依此类推。如果输入字符为0,则用下标为0的元素计数器加1,如果输入字符为1,则用下标为1的元素计数器加1,依此类推。
相关问题
使用c语言完成:输入一行数字字符,请用数组元素作为计数器来统计每个数字字符的个数。用下标为0的元素统计字符’0’的个数,用下标为1的元素统计字符’1’的个数……
#include <stdio.h>
int main()
{
char str[100];
int count[10] = {0};
int i;
printf("请输入一行数字字符:");
gets(str);
for (i = 0; str[i] != '\0'; i++)
{
if (str[i] >= '0' && str[i] <= '9')
{
count[str[i]-'0']++;
}
}
for (i = 0; i < 10; i++)
{
printf("字符'%d'出现的次数为:%d\n", i, count[i]);
}
return 0;
}
这题可作第一题: 输入一行字符(如何控制?),用数组元素作为计数器来统计每个数字字符的个数 定义int num[10]={0}; 刚好用num[0]来存储'0'这个字符出现的个数 用num[1]来存储'1'这个字符出现的个数 ... 譬如输入"1a22b7cc" 则输出num[1]=1 num[2]=2 num[7]=1 不出现的则不能输出 那么问题来了:如何判断是数字字符,以及数字字符如何对应下标,譬如'1'->num[1]里
可以使用isdigit()函数来判断一个字符是否为数字字符,它返回值为非零值时表示该字符是数字字符,返回值为零时表示不是数字字符。 对应下标可以用字符减去字符'0'得到,如'1'-'0'等于1,这样就可以直接将字符作为下标访问数组了。 以下是示例代码:
```c++
#include <iostream>
#include <cstring>
using namespace std;
int main()
{
char str[100];
int num[10] = {0};
cout << "请输入一行字符: ";
cin.getline(str, 100); // 读入一行字符
int len = strlen(str);
for (int i = 0; i < len; ++i) {
if (isdigit(str[i])) { // 判断字符是否为数字字符
int idx = str[i] - '0'; // 计算下标
++num[idx]; // 对应的数字字符出现次数加1
}
}
for (int i = 0; i < 10; ++i) {
if (num[i] != 0) { // 输出不为0的下标及其出现次数
cout << "num[" << i << "]=" << num[i] << endl;
}
}
return 0;
}
```
输入示例:
```
请输入一行字符: 1a22b7cc
```
输出示例:
```
num[1]=1
num[2]=2
num[7]=1
```
阅读全文