標題:
Difference of sets
[打印本頁]
作者:
may
時間:
2022-12-12 13:07
標題:
Difference of sets
使用一維數組來解決以下這個問題。
讀入兩組數,每組有5個數。讀完所有值後,
顯示第一個數組中沒有出現在第二個數組中的元素。
範例:
輸入
Enter 5 numbers for 1st array:
12
34
23
56
45
Enter 5 numbers for 2nd array:
34
56
12
78
56
Difference of sets is {23, 45}
#include<stdio.h>
#include<stdlib.h>
void selection_sort(int arr[], int len) {//自訂函數由小而大排序
int i, j, temp;
for (i = 0; i < len - 1; i++)
for (j = i+1; j < len; j++)
if (arr[i] > arr[j ]) {
temp = arr[j];
arr[j] = arr[i];
arr[i] = temp;
}
}
int main() {
int arr1[5] ;
int arr2[5] ;
printf("Enter 5 numbers for 1st array:\n");
for(int i=0;i<5;i++)
scanf("%d",&arr1[i]);
selection_sort(arr1,5);//呼叫函數由小而大排序
printf("Enter 5 numbers for 2nd array:\n");
for(int i=0;i<5;i++)
scanf("%d",&arr2[i]);
selection_sort(arr2,5);//呼叫函數由小而大排序
int i=0;
int j=0;
int c = 0;//判斷是否為輸出時,前面要加上逗號
printf("The difference of sets is {");
while(i<5 && j<5){
if(arr1[i]==arr2[j]){//若比對相同,兩個指針同步移1位
i++;
j++;
}else{
if(arr1[i]<arr2[j]){//若比對不同,而i值小於j值
if(c == 0)
c =1;//找到第1個數後,把c改成1
else
printf(", ");//若c值是1,表示前面有值,需以逗號分隔
printf("%d",arr1[i]);//找到不同的數值了
i++;//i指針再移下一位,j指針不要移
}
}
}
printf("}");
return 0;
}
複製代碼
歡迎光臨 種子論壇 | 高雄市資訊培育協會學員討論區 (http://seed.istak.org.tw/)
Powered by Discuz! 7.2