在C中输入数组并检查相同的值

时间:2017-12-26 07:30:48

标签: c arrays loops sorting

我如何输入一个整数数组并检查2对值是否相等,我还想删除重复的数组中只有1个相同的值? 我想打印数组的最终结果,而不包含重复的值。 我有类似的想法:

int a[SIZE], i;
 printf("Enter %d numbers:\n", SIZE);
 for (i = 0; i < SIZE; i++) {
  scanf_s("%d", a[i]);
 if(i>=1){
  if(a[i-1]==a[i]){
  a[i-1]==a[i];
  printf("%d", a[i-1]);
 }
}

这个结果给了我我需要但不完全的东西。 你可以帮忙吗?

1 个答案:

答案 0 :(得分:3)

代码

#include<stdio.h>
int main() {
   int arr[20], i, j, k, size;
   printf("\nEnter array size:");
   scanf("%d", &size);
   printf("\nEnter Numbers:");
   for (i = 0; i < size; i++)
      scanf("%d", &arr[i]);
   printf("\nList of Unique Numbers:");
   for (i = 0; i < size; i++) {
      for (j = i + 1; j < size;) {
         if (arr[j] == arr[i]) {
            for (k = j; k < size; k++) {
               arr[k] = arr[k + 1];
            }
            size--;
         } else
            j++;
      }
   }
   for (i = 0; i < size; i++) {
      printf("%d ", arr[i]);
   }
}

解释

输入后,我们从第一个元素开始。然后在for循环中,我们有另一个for循环来检查该元素之后的元素。如果有重复,我将其删除。希望这有帮助!