日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

C语言经典算法 21-30

發布時間:2025/3/20 编程问答 17 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C语言经典算法 21-30 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

目錄

  • 21 一個有序的數組插入一個數
  • 22 將一個數組逆序輸出
  • 23 報號 求最后是誰
  • 24 寫一個統計字符串長度的函數
  • 25 八進制轉換為十進制
  • 26 判斷一個素數能被幾個 9 整除
  • 27 輸入一組數據,查詢某個數據出現的次數(哈希存儲)
  • 28 計算字符串中子串出現的次數
  • 29 簡單的用戶登陸系統
  • 30 進度條加載小程序

21 一個有序的數組插入一個數

題目:有一個已經排好序的數組。現輸入一個數,要求按原來的規律將它插入數組中。程序分析:首先判斷此數是否大于最后一個數,然后再考慮插入中間的數的情況, 插入后 此元素之后的數,依次后移一個位置。

代碼如下:

#include<stdio.h> int main(void) {int a[11]={22,34,57,76,88,90,91,99,100,123};int i;int j=0;int temp=0;printf("請輸入你要插入的數據:");scanf("%d",&temp);if(temp<a[9]){for(i=0;i<11;i++){if(temp<a[i])//找到要插入的位置{for(j=10;j>i;j--){a[j]=a[j-1];}a[i]=temp;break;}}}else//插入的數最大,直接在后面插入{a[10]=temp;}for(i=0;i<11;i++){printf("%d ",a[i]);}printf("\n");return 0; }

22 將一個數組逆序輸出

題目:將一個數組逆序輸出。 程序分析:用第一個與最后一個交換。 當然你也可以直接倒著輸出,不過這樣對于這道題沒有啥意義。

代碼如下:

#include<stdio.h> int main(void) {int a[5]={1,2,3,4,5};int i;int N=5;int temp=0;for(i=0;i<N/2;i++){temp=a[i];a[i]=a[N-1-i];a[N-1-i]=temp;}for(i=0;i<5;i++){printf("%d ",a[i]);}return 0; }

23 報號 求最后是誰

題目:有 n 個人圍成一圈,順序排號。從第一個人開始報數(從 13 報數),凡報到 3 的人退出 圈子, 問最后留下的是原來第幾號的那位。 程序分析: 想法很簡單,就是 變量 sum 從 1開始到 3 ,如果是3 的倍數,a[i] 就是變為零 , 也就是退出的意思,i 一直都是從1到 最后一個數增加的,也就是形成了一個圈了的!

代碼如下:

#include<stdio.h> #include<string.h> int main() {int n;int i;while(scanf("%d",&n)==1)//輸入總共的人數{int a[200];for(i=1;i<=n;i++)a[i]=i;int su=n,sum=1;while(1){for(i=1;i<=su;i++){if(a[i]==0)//代表這個人已經出去了continue;if(sum%3==0)//代表要出去的人{a[i]=0;n--;//總人數減1sum=0;}sum++;}if(n==1)//只有一個人的時候,跳出循環break;}for(i=1;i<=su;i++){if(a[i]!=0)printf("%d\n",i);}} return 0; }

24 寫一個統計字符串長度的函數

題目:寫一個函數,求一個字符串的長度,在 main 函數中輸入字符串,并輸出其長度

代碼如下:

#include<stdio.h> int length(char a[]); int main(void) {char a[200];int n=0;scanf("%s",a);n=length(a);printf("%d\n",n);return 0; } int length(char a[]) {int i=0;while(a[i]!='\0'){i++;}return i; }

25 八進制轉換為十進制

題目:八進制轉換為十進制

代碼如下:

#include<stdio.h> void main() {char*p,s[6];int n;p=s; gets(p);n=0;while(*(p)!='\0'){n=n*8+*p-'0'; p++;} printf("%d",n); }

26 判斷一個素數能被幾個 9 整除

判斷一個素數能被幾個 9 整除

代碼如下:

#include<stdio.h> void main() {long int m9=9,sum=9;int zi,n1=1,c9=1;scanf("%d",&zi);//輸入的素數while(n1!=0){if(!(sum%zi))//判斷可不可以整除n1=0;else {m9=m9*10;sum=sum+m9;c9++; }} printf("%ld,canbe divided by %d\"9\"",sum,c9);printf("\n"); }

27 輸入一組數據,查詢某個數據出現的次數(哈希存儲)

讀入N名學生的成績,將獲得某一給定分數的學生人數輸出。輸入描述: 測試輸入包含若干測試用例,每個測試用例的格式為第1行:N 第2行:N名學生的成績,相鄰兩數字用一個空格間隔。 第3行:給定分數當讀到N=0時輸入結束。其中N不超過1000,成績分數為(包含)0100之間的一個整

代碼如下:

#include<stdio.h> #include<algorithm> int main() {int n;while(scanf("%d",&n)!=EOF){int Hash[101]={0};//利用哈希存儲每個分數出現的次數for(int i=0;i<n;i++){int x;scanf("%d",&x);//定義的X相當于輸入的每個分數,然后利用哈希進行統計Hash[x]++;}int x;scanf("%d",&x);//輸入你需要查詢的分數統計相應的人數 利用哈希返回printf("%d\n",Hash[x]);}return 0;}

28 計算字符串中子串出現的次數

計算字符串中子串出現的次數

代碼如下:

#include<stdio.h> #include<stdlib.h> #include<string.h> int main() {int i,j,k,TLen,PLen,count=0;char T[50],P[10];printf("請輸入兩個字符串,以回車隔開,母串在前,子串在后:\n");gets(T);gets(P);TLen=strlen(T);PLen=strlen(P);for(i=0;i<=TLen-PLen;i++){for(j=0,k=i;j<PLen&&P[j]==T[k];j++,k++);if(j==PLen)count++;}printf("%d\n",count);system("pause");return 0; }

29 簡單的用戶登陸系統

用戶名:李華 密碼:123456 #include<stdio.h> #include<conio.h> #include<string.h> int main(void) {char name[20];char password[20];char a;int i=0;printf("請輸入你的姓名:");scanf("%s",name);printf("請輸入密碼:");while( (password[i]=getch()) != 13 )//getch()返回值是一個鍵值,回車的鍵值是13{i++;printf("*");//隱藏我們的密碼}password[i]='\0';//把最后的回車變成結束符printf("\n");if(( strcmp(name,"李華")==0 ) && ( strcmp(password,"123456")==0 )){printf("登陸成功\n");}else{printf("登陸失敗\n");} }

30 進度條加載小程序

進度條加載小程序

代碼如下:

#include<stdio.h> #include<windows.h> int main(void) {int i=0;int j=0;for(i=1;i<=20;i++){for(j=1;j<=i;j++){printf("--");}printf(">%d%%",i*5);Sleep(360);if(i<20)system("cls");}printf("\n加載完成\n");return 0; }

C語言經典算法 1-10 點擊跳轉

C語言經典算法 11-20 點擊跳轉

總結

以上是生活随笔為你收集整理的C语言经典算法 21-30的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。