程式設計的問題是使用C的語文
請根據以下步驟撰寫一find_same()程式。
請寫出一個isin()函數,其輸入為一個陣列,其長度及要尋找的數字,若該數字存在於陣列中則傳回1,否則傳回0。若以C語言撰寫,則以下為其宣告。
int isin(int nums[], int length, int key);
請寫出一個printonce()函數,其輸入為一個陣列及其長度,printonce()函數呼叫isin()函數,將輸入陣列中所有數字列印出來,但其限制為重覆出現的數字只能列印一次。若以C語言撰寫,則以下為其宣告。
void printonce(int nums[], int length);
撰寫一find_same()程式,其輸入為兩可能不等長之陣列nums1[]及nums2[],及其長度length1及length2。find_same()運用isin()以找出兩陣列中相同的數字,並運用printonce()將其結果列印出來,以滿足重覆出現的數字只能列印一次的限制。假設nums1[]包含{ 3, 5, 3, 2453, -7, 0},而nums2[]包含{ 2, 9, 3, -2, -7, 1, 2452},則find_same()執行結果為:
3 -7
若以C語言撰寫,則以下為其宣告。
void find_same(int nums1[], int length1, int nums2[], int length2);
(提示:先運用另一陣列儲存兩陣列中相同的數字再呼叫printonce())
1 個解答
- 1 0 年前最佳解答
#include<iostream.h>
#include<stdio.h>
int isin(int nums[],int length,int key);
int isin(int nums[],int length,int key){
int i,result=0;
for (i=0;i<length;i++){
if(nums[i]==key){
result=1;}
}
return result;
}
void printonce(int nums[],int length){
int i,j;
for(i=1;i<=length;i++){
for(j=0;j<i;j++)
if(isin(nums,i-1,nums[j])==0)printf("%d\n",nums[j]);
}
}
void find_same(int nums1[],int length1,int nums2[],int length2){
int i,result,count=0,arr[10000];
for(i=0;i<length1;i++){
result=isin(nums2,length2,nums1[i]);
if (result==1){
arr[count]=nums1[i];
count++;}
}
printonce(arr,count);
}
main(int argc,char *argv[]){
int nums1[]={3,5,3,3,2453,-7,0,2452},nums2[]={2,9,3,-2,-7,1,2452},length1=8,length2=7;
find_same(nums1,length1,nums2,length2);
}
參考資料: 自己與書