我需要從用戶數組中刪除重複的號碼。 和我nedd使用像RemoveDup功能。 我有一個錯誤:「表達式必須有指向對象類型的指針」 我看着較舊的forims,並沒有succseed解決問題。你能幫我嗎?如何刪除重複的號碼
#include <stdio.h>
#include <stdlib.h>
#pragma warning (disable: 4996)
void sortAsending(int arr[], int size);
void swap(int* a, int* b);
void RemoveDup(int, int);
void main()
{
int arr[10];
int i, size ;
printf("please enter size of array: ");
scanf("%d", &size);
printf("please enter %d numbers: ", size);
for (i = 0; i < size; i++)
scanf("%d", &arr[i]);
printf("the original array is: ");
for (i = 0; i < size; i++)
printf("%d ", arr[i]);
printf("\n");
sortAsending(arr, size);
printf("the sorted array is: ");
for (i = 0; i < size; i++)
printf("%d ", arr[i]);
printf("\n");
}
void swap(int* a, int* b)
{
int temp = *a;
*a = *b;
*b = temp;
}
void sortAsending(int arr[], int size)
{
int i, j;
for (i = size - 1; i > 0; i--)
{
for (j = 0; j < i; j++)
{
if (arr[j]>arr[j + 1])
swap(&arr[j], &arr[j + 1]);
}
}
}
void RemoveDup(int arr, int size)
{
int arr[size];
int i, j, k;
for (i = 0; i < size; i++)
{
for (j = i + 1; j < size;)
{
if (arr[i] == arr[j])
{
for (k = j; k < size; k++)
arr[k] = arr[k++];
size--;
}
else
j++;
}
}
}
,開始時,更改代碼[如果編譯器支持VLA]至'INT I,大小; ...的scanf(大小)... INT ARR [大小];'或考慮增加範圍檢查。 –