2020年1月11日 星期六

找重複數字

題目:
輸入十個整數,輸出其中有重複的數字,輸入與輸出請參照下圖範例。
輸入:十個整數,以空格隔開。
輸出:重複的數字(有多個以逗號隔開),若無重複數字則顯示“No repeated number!”。

範例輸出:






解題思路:
每輸入一個數都先跑看看之前有沒有相同的數字。

程式碼:
#include <stdio.h>

int main()
{
 int n[10] = { 0 }, counter[10] = { 0 }, m, length = 0, check = 0;//m接暫時數字,length紀錄陣列長度,check看有無被記錄
 printf("Please enter 10 number:\n");
 for (int i = 0; i < 10; i++)//題目輸入10個數字
 {
  check = 0;
  scanf_s("%d", &m);
  for (int j = 0; j < length; j++)//檢查有沒有出現過,有counter[]++,沒有放到n[]
  {
   if (n[j] == m)
   {
    counter[j]++;
    check = 1;
    break;
   }
  }
  if (check == 0)
  {
   n[length] = m;
   counter[length] += 1;
   length++;
  }
 }
 check = 0;
 printf("The repeat number is:\n");
 for (int i = 0; i < length; i++)
 {
  if (counter[i] > 1)
  {
   if (check == 1)
    printf(",");
   printf("%d", n[i]);

   check = 1;
  }
 }
 if (check == 0)
  printf("No repeat number!\n");
 return 0;
}


沒有留言:

張貼留言