给定数组,获得两个新数组,一个数字放置不同数字,另一个数组放置不同数字出现的次数,使用C语言编写程序
时间: 2023-06-06 17:08:48 浏览: 94
很高兴为您服务。这是一个关于计算数组中不同数字和它们出现次数的问题。以下是代码示例:
```c
#include <stdio.h>
#define MAX 100
int main() {
int arr[MAX], freq[MAX];
int len, count, unique;
printf("请输入数组长度:");
scanf("%d", &len);
printf("请输入数组数据:");
for (int i = 0; i < len; i++) {
scanf("%d", &arr[i]);
freq[i] = -1;
}
unique = 0;
for (int i = 0; i < len; i++) {
count = 1;
for (int j = i+1; j < len; j++) {
if (arr[i] == arr[j]) {
count++;
freq[j] = 0;
}
}
if (freq[i] != 0) {
freq[i] = count;
unique++;
}
}
printf("不同数字数组:\n");
for (int i = 0; i < len; i++) {
if (freq[i] != 0) {
printf("%d ", arr[i]);
}
}
printf("\n不同数字出现次数:\n");
for (int i = 0; i < len; i++) {
if (freq[i] != 0) {
printf("%d ", freq[i]);
}
}
return 0;
}
```
这个程序可以输入一个长度为N的数组,并计算数组中不同数字,以及每个数字出现的次数。程序首先读取一个数字N,然后输入N个数字。它首先将频率数组设置为-1,然后计算不同数字的数量。对于每个数字,它遍历数组的其余部分,确定该数字出现的次数。如果数字只在数组中出现一次,它将在频率数组中的相应位置上设置次数,并计算唯一数字的数量。最后,程序打印出两个新数组:一个数组包含唯一的数字,一个数组包含每个数字的出现次数。
希望这个代码可以对您有帮助。
阅读全文