C語言經典演算法2

2021-06-21 01:30:05 字數 2957 閱讀 6583

//1、隨機產生20個[10 , 50]的正整數存到陣列中,並求陣列中的所有元素最大值、最小值、平均值以及各元素之和

int maxindex = 0,minindex = 0;

for (int i = 0; i < 20; i++)

if (array[minindex] > array[i])

sum += array[i];

}printf("%d,%d,%f",array[maxindex],array[minindex],sum / 20.0);

//2、程式設計在乙個已知的字串中查詢最長單詞,假定字串中只含字母和空格,用空格來分隔單詞

int max = 0,count = 0,temp = 0;

char

array[

num] = "are you kidding me";

for (int i = 0; i < strlen(array); i++)

printf("\n");

for (int i = 0; i < strlen(array) +  1; i++) else

count = 0;}}

printf("%d\n",max);

for (int i = temp - max; i < temp; i++)

//3、耶穌有13個門徒,其中有乙個就是出賣耶穌的叛徒,請用排除法找出這位叛徒:13人圍坐一圈,從第乙個開始報號:1,2,3,1,2,3...。凡是報到「3」就退出圈子,最後留在圈子內的人就是出賣耶穌的叛徒。請找出它原來的序號

//方法一

int a[num] = ;

int i = 0,count = 0,nperson = 13;

while (nperson > 1)

}i++;

}for ( int j = 0; j < 13; j++)

}//方法二

int i = 0,p = 0,count = 0;

int person[14] = ;

while (true)

}if (p == 12)

if (i == 13)

}//4.編寫乙個程式,輸入兩個包含5個元素的陣列,先將兩個陣列公升序排序,然後將這兩個陣列合併成乙個公升序陣列。

int arraya[10] = ;

int arrayb[5] = ;

//陣列a

for (int i = 0; i < 5 - 1; i++) }}

for (int i = 0; i < 5; i++)

printf("\n");

//陣列b

for (int i = 0; i < 5 - 1; i++) }}

for (int i = 0; i < 5; i++)

printf("\n");

//合併歸併排序

int array[10] = ;

int i = 0,j = 0,k = 0;

while (i < 5 && j < 5)

while (i < 5)

while (j < 5)

for (i = 0; i < 10; i++)

// 5.給定某年某月某日,將其轉換成這一年的第幾天並輸出。

int day = 0,month = 0,year = 0,result = 0;

printf

("請輸入: 年

月日\n");

scanf("%d,%d,%d",&year,&month,&day);

if (month < 13 && month > 0 && day < 32 && day > 0) else

case

2:result += 31;

case

1:result +=day;

break;

}printf("%d\n",result);

}else

// 8.編寫乙個程式,要求使用者輸入乙個美金數量,然後顯示出如何用最少的20美元、10美元、5美元和1美元來付款

int money = 0;

scanf("%d",&money);

int array[4] = ;

for (int i = 0; i < 4; i++)

// 9.輸入6個字串,並對它們按從小到大的順序排序後輸出

char str[6][20] = ;

char tempstr[20] = "";

//隨機產生字串

for (int i = 0; i < 6; i++)

str[i][rlength] = '\0';

}//氣泡排序字串

for (int i = 0; i < 6 - 1; i++) }}

//輸出排序後的字串

for (int i = 0; i < 6; i++)

10. 指標:

//去除字串中的數字方法一

char str = "abc12im5rdi";

char * p1 = str;

char * p2 = str;

while (*p2 != '\0')

p2++;

}*p1 = '\0';

printf("%s",str);

//方法二

char s="ip5he3";

char * p = s;

while (*p!='\0')

p++;

}printf("%s\n",s);

//11. 去掉字串中與首次出現的字元不相鄰的重複字元

char s = "aabcabd";

char * p1 = s;

char * p2 = p1 + 1;

while (*p1 != '\0')

p2++;

}p1++;

p2 = p1 + 1;

}printf("%s\n",s);

C語言經典例程 經典c程式2例

前言 this article mainly introduces the classical routine of c language,2 cases of classical c program.friends who study c language can refer to it.程式1 ...

經典排序演算法總結(C語言)

十種常見排序演算法一般分為以下幾種 1 非線性時間比較類排序 交換類排序 快速排序和氣泡排序 插入類排序 簡單插入排序和希爾排序 選擇類排序 簡單選擇排序和堆排序 歸併排序 二路歸併排序和多路歸併排序 2 線性時間非比較類排序 計數排序 基數排序和桶排序。總結 1 在比較類排序中,歸併排序號稱最快,...

C語言經典演算法100例004

name c語言經典演算法100例004 author 巧若拙 date 25 08 14 07 08 description 題目 輸入某年某月某日,判斷這一天是這一年的第幾天?year能被4整除 and 不能被100整除 or year能被400整除 include include includ...