C語言的小練習

2021-10-08 16:39:32 字數 1023 閱讀 1738

題⽬:接受⽤戶輸⼊的⼀組數字(先提⽰⽤戶輸⼊待輸⼊的數字個數,⽽後動態申請記憶體開闢空間承接後續輸⼊) 在⽤戶輸⼊的若⼲個數中尋找三個數a,b,c, 使得a+b+c= 0 注意:三個數按照a ≤ b ≤c排列,且不輸出重複的a,b,c組合

思路:先提⽰⽤戶輸⼊要輸⼊資料的個數,然後申請動態記憶體,輸⼊若⼲個數字存進⼀陣列然後對資料進⾏公升序的排序。排除⼀些不可能的情況,通過三個變數(相當於指標)進⾏判斷,偏移,最後得出想要的資料。

#include

#include

intjudge

(int p,

int n)

return-1

;}intmain()

int*p =

(int*)

malloc

(n *

sizeof

(int))

;//動態分配記憶體運用

printf

("enter numbers:\n");

for(i =

0; i < n; i++

)// 對輸入的資料進行排序(公升序)

for(i =

0; i < n; i++)}

} t =

judge

(p, n)

;// 如果陣列中資料全為負數或者第乙個就為0的話,整個陣列任意三個數的和都是大於0。if(

(t ==-1

)||(t ==0)

)printf

("error");

// 判斷 a+b+c = 0 以及輸出去重 。

for(i=

0;i2;i++

)else

//p[m] + p[h] + p[i] >0 ,證明數字夠大了 ,動後面面的往前走乙個,h--

h--;}

}}free

(p);

// 釋放記憶體

p =null

;// 指標初始化,防止野指標出現。

return0;

}

C語言小練習

1.有1 2 3 4個數字,能組成多少個互不相同且無重複數字的三位數?都是多少?使用陣列 includeint main void int num 0,i,j 0 scanf d num for i 0 i 10 i if i num for i 0 i 10 i 2.有乙個長度為10的陣列,根據下...

C語言小練習

1.列印100 200之間的素數 include include include 100 200間素數求法 int main if j i printf d n i 2.偶數都為2的倍數,所以均不為素數,這樣我們就可以排除掉偶數,直接判斷奇數是不是素數 int i 100 for i 100 i 2...

C語言小練習

1.在螢幕上輸出以下圖案 1111 11111 1111111 111111111 11111111111 1111111111111 11111111111 111111111 1111111 11111 1111 如下 include include void main else n n 1 p...