C語言:計算兩個集合的並集
並集的計算,在交集的基礎上修改兩處即可。有什麼不足之處請拍磚....#include<stdio.h> #include<stdlib.h> #include<time.h> #define NUMBER1 7 #define NUMBER2 5 void createCollect(int [],int); void display(int [],int); int main() { int collection1[NUMBER1]; int collection2[NUMBER2]; int collection3[NUMBER1+NUMBER2]; int i,j,label=0; createCollect(collection1,NUMBER1); for(j = 0;j < NUMBER2;j++) { collection2[j]=j*2; } printf("集合1:"); display(collection1,NUMBER1); printf("集合2:"); display(collection2,NUMBER2); for(i = 0; i < NUMBER1;i++) { //從集合1中取出元素,去遍歷集合2中的所有元素 for(j = 0;j < NUMBER2;j++) { //如果相同則跳出遍歷 if(collection1[i]==collection2[j]) break; } //判斷:此時存在兩種情況1) 當前集合1的元素與集合2的元素相同 //2)遍歷完了集合2的陣列後不存在相同的元素 if(j == NUMBER2) { collection3[label]=collection1[i]; label++; } } //把集合2的所有元素存進collection3中 for(j = 0;j < NUMBER2;j++) { collection3[label++]=collection2[j]; } printf("集合1與集合2的並集為:\n"); display(collection3,label); return 0; } //隨機生成一個不含重複元素的陣列 void createCollect(int num[],int count) { //randValue:臨時隨機數存放變數 //condition:迴圈生成不重複的條件 int i,j,randValue,condition; srand(time(NULL)); for(i=0;i<count;i++) { condition=1; while(condition){ randValue=1+(int)rand()%10; for(j = 0;j <= i;j++){ if(i==0){//第一個數不可能存在重複數,可以直接賦值 condition=0; break; } if(randValue==num[j]) break; if(randValue!=num[j]&&j==i-1)//當生成的隨機數與當前陣列最後一位不同並且下標相等時 { condition=0; break; } } } num[i]=randValue; } } //列印陣列 void display(int num[],int count) { int i; for(i=0;i<count;i++) { printf("%d\t",num[i]); } printf("\n"); }
相關推薦
C語言:計算兩個集合的並集
#include<stdio.h> #include<stdlib.h> #include<time.h> #define NUMBER1 7 #define NUMBER2 5 void createCollect(int [],int
C語言:計算兩個集合的交集
#include<stdio.h> #include<stdlib.h> #include<time.h> #define NUMBER1 7 #define NU
C語言:給定兩個整形變數的值,將兩個值的內容進行交換
給定兩個整形變數的值,將兩個值的內容進行交換,有三種不同的方法。第一種:定義一個中間變數,使得兩個數值交換。第二種:利用兩個數值之間相互加減,使得兩個數值交換。第三種:利用異或運算,使得兩個數值交換。第一種方法程式碼如下: #include<stdio.h> int main() {
C語言:比較兩個字串是否相等
1) 使用strcmp進行比較 下面通過一個例子進行演示: #include <stdio.h> #include <string.h> int main(void) { char* str1 = "abc"; char* str2 = "a
c語言:輸入兩個正整數m和n,求其最大公約數和最小公倍數
輸入兩個正整數m和n,求其最大公約數和最小公倍數。解:程式:#include <stdio.h>int main(){int num1, num2, t,p;printf("請輸入兩個正整數
C語言:寫兩個函式,分別求兩個最大公約數和最小公倍數
題目:寫兩個函式,分別求兩個整數的最大公約數和最小公倍數,用主函式呼叫這個兩個函式,並輸出結果。兩個整數由鍵盤輸入 分析:求最大公約數,需要用到輾轉相除法: 輾轉相除法:設兩數為a、b(a>b
我的第四個C語言:計算圓柱體的表面積和體積。
問題及程式碼: 問題:計算圓柱體的表面積和體積。 程式碼:#include <stdio.h> #include <stdlib.h> int main() { float r,h,S,V; printf("請輸入圓柱體的半徑\n"
C語言:有5個學生,每個學生有3門課的成績,從鍵盤輸入學生資料,計算平均成績
有5個學生,每個學生有3門課的成績,從鍵盤輸入學生資料(包括學生號、姓名、三門課成績),計算平均成績,將原有資料和計算出的平均分數存放在磁碟檔案“stud”中 對於平均成績的思路就是:把平均成績當做結構體的一項 在輸入3門課成績以獲得平均成績時,要注意在c語言中,三門成績
C語言:計算並輸出S=1+(1+2^0.5)+(1+2^0.5+3^0.5)...+(1+2^0.5+3^0.5+...+n^0.5)
輸出 nbsp clas return %d span file fprintf 計算 //計算並輸出S=1+(1+2^0.5)+(1+2^0.5+3^0.5)...+(1+2^0.5+3^0.5+...+n^0.5) 1 #include<math.h>
C語言:計算並輸出給定10個數的方差。
include pen printf style i++ double The span col //計算並輸出給定10個數的方差。 1 #include<math.h> 2 #include<stdio.h> 3 double fu
C語言:解決多個C檔案包含同一標頭檔案引起的檔案重複包含問題
解決多個C檔案包含同一標頭檔案引起的檔案重複包含問題,並給出全域性變數如何定義和宣告的方法. 解決方法: 1. 定義公共檔案: global.c 和global.h 其中, global.c檔案中: #include "global.h" //定義全域性變數 int g
C語言:計算階乘和階乘的和
從鍵盤輸入一個數,用C語言計算該數的階乘 #include <stdio.h> #include<stdlib.h> int main() { int i,sum = 0, p = 1, n; scanf("%d",&n); if(
C語言分別求兩個整數的最大公約數和最小公倍數
#include <stdlib.h> #include <math.h> #include <stdio.h> //遞迴演算法 //歐幾里得演算法 void GCD(int a, int b) { int temp;
C語言,實現兩個整數m和n的二進位制序列中有多少不同的位
新手學程式設計,大佬寫的太高深,看看本人小白寫的,一起學習一起交流 #include <stdio.h> int main() { int m = 0; int n = 0; int i = 0; int count = 0; scanf("%d%d", &
C語言(C++語言)中##(兩個井號)和#(一個井號)用法[轉]
C語言(C++語言)中的巨集(Macro)屬於編譯器預處理的範疇,屬於編譯期概念(而非執行期概念)。下面對常遇到的巨集的使用問題做了簡單總結。 關 於#和## 在C語言的巨集中,#的功能是將其後面的巨集引數進行字串化操作(Stringfication),簡單說就是在對它所引用的巨集變數通過替換後
C語言:求10 個整數中最大值
求10 個整數中最大值思路:求10 個整數中最大值,可以利用陣列來完成對10個數的儲存,再用迴圈語句和條件語句來判斷數的大小, 把最大值賦值給最大值變數max,然後輸出最大值。 程式碼如下: #include<stdio.h> int main() { int i,max;
C語言例項—輸入兩個正整數m和n,求其最大公約數和最小公倍數(gcc 編譯)。
1.輾轉相除法 輾轉相除法是古希臘求兩個正整數的最大公約數的,也叫歐幾里德演算法,其方法是用較大的數除以較小的數,上面較小的除數和得出的餘數構成新的一對數,繼續做上面的除法,直到出現能夠整除的兩個數,其中較小的數(即除數)就是最大公約數。以求288和123的最大公約數為例,操作如下: 288÷1
C語言程式設計求兩個複數的和
#include <stdio.h> #include <stdlib.h> /* 1.程式設計求兩個複數的和 結構體 函式 返回值是結構體 引數 兩個結構體 */ struct Complex { int x; int y; }; stru
C語言中交換兩個陣列的值
昨天我們做了交換兩個變數的值,今天我們來看看如何交換兩個陣列的值(陣列內數的個數相同)。 我們可以這樣考慮,陣列不過是數的集合,既然我們會交換兩個數的值,那麼陣列只不過是多次交換兩個數的值,而且陣列內素下標又是依次增大的,所以這裡可以使用一個for迴圈。
C語言字元中兩個字串拼接(古月)
最忌學習了C語言的基礎,深刻的感受到了跨平臺語言是多麼的強大,我們都是站在了巨人的肩膀上.下面就是C語言將兩個字串拼接起來的程式碼 #include<stdio.h> int main(void) { char arr1[] = "hello"; // 定義兩個字元陣