请用C语言编写一个 function RemoveDuplicates (array, n),当我输入一个顺序递增的数组时,它将删去其中重复的元素并将数组输出,同时statementnScores = RemoveDuplicates (scores, nScores);会统计新数组的元素个数并输出
时间: 2024-03-06 15:51:13 浏览: 45
删除数组中的重复元素
好的,以下是实现所需功能的程序:
```
#include <stdio.h>
int RemoveDuplicates(int array[], int n) {
if (n == 0) {
return 0;
}
int j = 0;
for (int i = 1; i < n; i++) {
if (array[i] != array[j]) {
j++;
array[j] = array[i];
}
}
return j + 1;
}
int main() {
int nScores;
printf("请输入数组的大小:");
scanf("%d", &nScores);
int scores[nScores];
printf("请输入递增的数组元素:");
for (int i = 0; i < nScores; i++) {
scanf("%d", &scores[i]);
}
printf("原数组为:");
for (int i = 0; i < nScores; i++) {
printf("%d ", scores[i]);
}
printf("\n");
int statementnScores = RemoveDuplicates(scores, nScores);
printf("新数组为:");
for (int i = 0; i < statementnScores; i++) {
printf("%d ", scores[i]);
}
printf("\n");
printf("新数组元素个数为:%d\n", statementnScores);
return 0;
}
```
这个程序包含了一个名为`RemoveDuplicates`的函数,它的作用与前面所述相同。在主函数中,首先提示用户输入数组大小和元素,并将其存储在名为`scores`的数组中。然后,原始数组和新数组都将被打印出来,并且新数组的大小将被统计并打印。
请注意,由于我们需要动态分配内存以存储数组,因此我们使用了变量长度数组(VLA)。这意味着数组大小可以在运行时确定,并且不需要在代码中硬编码数组大小。
阅读全文