-
#include <stdio.h> int main() { static int b[]={5,26,74,56,1,27},a[10]={0},i,j,k=6; for(j=0;j<k;j++) {if(b[j]>=10) { a[i=b[j]%10]++; a[i=b[j]/10]++; } else {a[b[j]]++;} } for(i=0;i<10;i++) printf("%3d",a[i]); }
#include <stdio.h>
int main()
{
static int b[]={5,26,74,56,1,27},a[10]={0},i,j,k=6;
for(j=0;j<k;j++)
{if(b[j]>=10)
{ a[i=b[j]%10]++;
a[i=b[j]/10]++;
}
else
{a[b[j]]++;}
}
for(i=0;i<10;i++)
printf("%3d",a[i]);
}
可以按照以下步骤进行设计:
1、创建一个名为 countDigits 的函数,该函数接受一个整数数组 b 和数组的大小 k,并返回一个表示每个数字出现次数的整数数组。
2、在 countDigits 函数内部,声明并初始化一个长度为 10 的整数数组 a,用于存储每个数字出现的次数。
3、使用循环遍历数组 b 中的元素,从索引 0 到 k-1。
4、在循环中,使用条件语句判断当前元素 b[j] 的值是否大于等于 10。
5、如果 b[j] 大于等于 10,执行以下操作:
6、使用模运算 % 获取 b[j] 的个位数,并将其作为索引,将 a 数组中对应位置的值加1。
7、使用除法运算 / 获取 b[j] 的十位数,并将其作为索引,将 a 数组中对应位置的值加1。
8、如果 b[j] 小于 10,执行以下操作:
9、将 b[j] 直接作为索引,将 a 数组中对应位置的值加1。
10、循环结束后,返回整数数组 a。
11、在 main 函数中调用 countDigits 函数,并将结果存储在一个整数数组中。
12、使用循环遍历结果数组,并打印每个数字出现的次数。
#include <stdio.h>
void countDigits(int b[], int a[], int k) {
int i, j;
for (j = 0; j < k; j++) {
if (b[j] >= 10) {
a[i = b[j] % 10]++;
a[i = b[j] / 10]++;
} else {
a[b[j]]++;
}
}
}
int main() {
int b[] = {5, 26, 74, 56, 1, 27};
int a[10] = {0};
int k = 6;
countDigits(b, a, k);
for (int i = 0; i < 10; i++) {
printf("%3d", a[i]);
}
return 0;
}