C语言代码如下:
运行结果如下:
输入一行数字后,先输出了num数组及每个数字出现的次数
然后输入12,正确输出了其在数组中出现了3次,望采纳~
附源码:
#include <stdio.h>
int str_to_int(char *s) {
int num = 0;
while (*s != '\0') {
num = num * 10 + (*s - '0');
s++;
}
return num;
}
int find_int_in_array(int arr[], int l, int n) {
int i;
for (i = 0; i < l; i++) {
if (arr[i] == n)
return i;
}
return -1;
}
int main() {
char s[15];
int num[100], count[100], l = 0, n, idx;
while (scanf("%s", s)) {
n = str_to_int(s);
idx = find_int_in_array(num, l, n);
if (idx == -1) { // n在数组中第一次出现
num[l] = n;
count[l] = 1;
l++;
}
else // n在数组中重复出现
count[idx]++; // 统计其出现次数
if (getchar() == '\n') // 最后一个数和回车之间不能有空格
break;
}
for (idx = 0; idx < l; idx++) {
printf("%d %d\n", num[idx], count[idx]);
}
scanf("%d", &n);
idx = find_int_in_array(num, l, n);
if (idx == -1)
printf("%d不存在\n", n);
else
printf("%d出现了%d次\n", n, count[idx]);
return 0;
}