給定一个排好序的数組,去除数組中重复的元素,保证每个元素输入输出格式 print f (“Please input the arraysize in“), scanf ("'d"); for () { 出 𤣲 1一你例如 printf("Please input the %d-th number \n"); scanf (“%a2 printf ("values are Wd\n"); for () printf(sahn”); 7 函数原型为 int removeDuplicates (int nume DJ, int mums size)
时间: 2024-02-02 18:02:37 浏览: 106
java去除已排序数组中的重复元素
5星 · 资源好评率100%
好的,我理解了你的问题。下面是完整的代码实现:
```
#include <stdio.h>
int removeDuplicates(int* nums, int numsSize);
int main() {
int nums[100], numsSize;
printf("Please input the array size: ");
scanf("%d", &numsSize);
for(int i = 0; i < numsSize; i++) {
printf("Please input the %d-th number: ", i+1);
scanf("%d", &nums[i]);
}
int newLength = removeDuplicates(nums, numsSize);
printf("Values are: ");
for(int i = 0; i < newLength; i++) {
printf("%d ", nums[i]);
}
printf("\n");
return 0;
}
int removeDuplicates(int* nums, int numsSize){
if(numsSize == 0) return 0;
int i = 0;
for(int j = 1; j < numsSize; j++) {
if(nums[i] != nums[j]) {
i++;
nums[i] = nums[j];
}
}
return i + 1;
}
```
这个程序会先要求输入整个数组的大小,然后逐个输入数组的元素。接着调用 `removeDuplicates` 函数进行去重处理,并将去重后的数组输出。函数的实现和前面回答的一样,直接复制到程序中即可。
阅读全文