c語言入門100道(C語言經典100例36)
2023-08-02 17:12:54
c語言入門100道?題目:求100之內的素數#includebool is_prime(int x)// 判斷是不是素數的函數// 素數定義為:只能被1和自己整除的數{ for(int i = 2; i * i <= x;i ) if(x % i == 0) return false; return true;}int main{ for(int i = 2; i <= 100 ;i ) if(is_prime(i)) printf("%d\n",i);//想想如果五個一行應該怎麼輸出 },我來為大家講解一下關於c語言入門100道?跟著小編一起來看一看吧!

c語言入門100道
題目 36題目:求100之內的素數
#includebool is_prime(int x)// 判斷是不是素數的函數// 素數定義為:只能被1和自己整除的數{ for(int i = 2; i * i <= x;i ) if(x % i == 0) return false; return true;}int main{ for(int i = 2; i <= 100 ;i ) if(is_prime(i)) printf("%d\n",i);//想想如果五個一行應該怎麼輸出 }
題目 37題目:對10個數進行排序
程序分析:這裡使用的冒泡排序,進行10-1次排序,每次都遍歷整個數組,將當前位置與下一個位置數的大小進行比較
#includeint a[11];//注意數組下標從0開始 // 每個人習慣不同,我習慣從下標為1開始void swap(int &x,int &y)//試試不加&會發生什麼 { int t = x; x = y; y = t;}int main{ for(int i = 1;i <= 10;i ) scanf("%d",&a[i]); for(int i = 1;i < 10;i )//冒泡排序 for(int j = 1;j < 10;j ) if(a[j] < a[j 1])//從大到小排序 swap(a[j],a[j 1]);//交換兩個位置的元素 // swap函數的頭文件為iostream,這裡不適合直接使用,故編寫了一個函數 for(int i = 1;i <= 10;i ) printf("%d ",a[i]);}
題目 38題目:求一個3*3矩陣對角線元素之和
程序分析:利用雙重for循環控制輸入二維數組,再將
累加後輸出
#includeint a[4][4],ans;//同樣注意下標從0開始,且全局變量ans的初始值為0int main{ for(int i = 1;i <= 3;i ) for(int j = 1;j <= 3;j ) scanf("%d",&a[i][j]); for(int i = 1;i <= 3;i ) ans = a[i][i]; printf("%d", ans);}
題目 39題目:有一個已經排好序的數組。先輸入一個數,要求按原來的規律將它插入數組中。
程序分析:首先判斷此數是否大於最後一個數,然後再考慮插入中間的數的情況,插入後此元素之後的數,依次後移一個位置。
(這裡程序分析中說的是從小到大的情況,如果另一種情況怎麼辦?)
#includeint a[13] = {0,1,3,5,7,9,11,13,15,17,19};//第一位我們不用int x;int main{ scanf("%d",&x); if(x > a[10]) a[11] = x; else { for(int j = 9;j;j--) if(x > a[j]) { for(int i = 11;i >= j 1 ;i--)//為什么正向處理不行? a[i] = a[i-1]; a[j 1] = x; break; } } for(int i = 1;i <= 11;i ) printf("%d ",a[i]);}
題目 40題目:將一個數組逆序輸出。
程序分析:找對稱軸,用當前位置的一個與從後面數的對應位置的一個交換。
#include// 這裡使用下標為0或者1,代碼寫法會有哪裡不一樣?// 動手試一試int a[9] = {0,1,9,3,2,4,7,9,3};//從索引0開始考慮 //如果從索引1開始考慮要注意什麼,建議動手試一試 void swap(int &x,int &y){ int t = x; x = y; y = t;}int main{ // 不理解的小夥伴可以參考這裡:https://blog.csdn.net/i_pangpang/article/details/80197865 //計算數組長度: 這裡要注意什麼? // 這裡計算的數組長度,是我們實際存儲的數的長度嗎? int len = sizeof(a) / sizeof(int); printf("len is %d\n",len); for(int i = 0;i < len / 2 ;i ) swap(a[i],a[len - i - 1]); for(int i = 0;i < len ;i ) printf("%d ",a[i]);}
,