C程序設計算法總結舉例
1.順序結構舉例
(該類題目,通常輸入一些數據,再通過使用一個或幾個數學公式求解,通過賦值表達式得到結果,并輸出。包括求三角形面積,相關物體體積,求溫度,解二元一次方程組、一元二次方程等)
1-1.求溫度轉換 華氏-攝氏溫度轉換公式:c=5/9(f-32)#include main(){ float c, f;scanf(“%f”, &f);c = 5.0 / 9 *(fi + 1);//pow(x,y)計算x的y次方 }...3-5.求 s=a+aa+aaa+aaaa+a...a(n個a),a,n由鍵盤輸入!。如輸入a=3 n=5 則 s=3+33+333+3333+33333 ……
k = s = a;for(i = 1;i <= nyy1;j >= 0;j--){ printf(“%c”, 'A' + j);} printf(“n”);
} }
#include main(){ int i, j, n;scanf(“%d”, &n);for(i = 0;i < n;i++){ for(j = 0;j < n1;j++){ printf(“%c”, '*');} printf(“n”);
} }
4.數組
包括:排序、查找、字符串長度、字符串大小寫轉換、比較字符串大小、字符串連接、字符串拷貝、數列前n項、統計字符串中單詞個數、求數組元素最值、二維數組輸入、輸出、轉置、數字(字符串)逆序輸出。數組中統計奇數偶數,二維數組對角線元素,行列元素的相關處理。
4-1排序(選擇法、冒泡法)冒泡法
(1)冒泡法排序算法
將一個數字序列存放在數組中,相鄰的兩個數進行比較,若前一個數大則交換,...一趟下來最大數必然在最后,然后對于剩下元素反復執行上面操作 #include main(){ int a[10], i, j, x;for(i = 0;i <= 9;i++)scanf(“%d”, &a[i]);for(i = 0;i <= 8;i++)for(j = 0;j <= 8-i;j++)if(a[j] > a[j + 1]){ x = a[j];a[j] = a[j + 1];a[j + 1] = x;} printf(“n”);for(i = 0;i <= 9;i++)printf(“%5d”, a[i]);}(2)函數冒泡法
編寫自定義函數,實現冒泡法排序
#include main(){ void qipao(int a[]);int a[10], i;for(i = 0;i <= 9;i++){ scanf(“%d”, &a[i]);} qipao(a);printf(“n”);for(i = 0;i <= 9;i++)printf(“%5d”, a[i]);} void qipao(int a[]){ int i, j, x;for(i = 0;i <= 8;i++)for(j = 0;j <= 8-i;j++)if(a[j] > a[j + 1])
{
x = a[j];
a[j] = a[j + 1];
a[j + 1] = x;} }(3)選擇排序算法
將一個數字序列存放在數組中,假設“剩下的序列中第一個元素”為最小值,將其與數組中其它元素進行比較,找到最小值,將該最小值與“剩下的序列中第一個元素”進行交換,最小元素放到剩下序列的第一個位置,反復做這個操作……
#include main(){ int a[10], i, j, m, x;for(i = 0;i <= 9;i++)scanf(“%d”, &a[i]);for(i = 0;i <= 8;i++){ m = i;for(j = i + 1;j <= 9;j++)if(a[m] > a[j])m = j;x = a[m];a[m] = a[i];a[i] = x;} printf(“n”);for(i = 0;i <= 9;i++)printf(“%5d”, a[i]);}(4)函數選擇法排序算法
#include main(){ void xuanze(int a[]);int a[10], i, j;for(i = 0;i <= 9;i++)scanf(“%d”, &a[i]);xuanze(a);printf(“n”);for(i = 0;i <= 9;i++)printf(“%5d”, a[i]);}
void xuanze(int a[]){ int i, j, x, m;for(i = 0;i <= 8;i++){ m = i;for(j = i + 1;j <= 9;j++)if(a[m] > a[j])m = j;x = a[m];a[m] = a[i];a[i] = x;} } 4-2查找
順序查找:數字序列放到數組中,不要求數組元素本身有序,查找x是否在數列中: ……
for(i=0;i<=9;i++)if(x==a[i])printf(“zhaodaole %d ,%d”,x,i+1);
折半查找:1.要求數列必須有序的;2.比較數列中間元素;3.縮小范圍,重復2…… 4-3數列前n項
若已知 f1=1,f2=2,f3=3, fn=fn-1+3fn-2+fn-3 n>=4,用數組的方法求數列前n項(n由鍵盤輸入)及前n項和。
#include main(){ int f[100], n, i, s;scanf(“%d”, &n);f[1] = 1, f[2] = 2, f[3] = 3;s = f[1] + f[2] + f[3];for(i = 4;i <= n;i++){ f[i] = f[i2] + f[i1;j++){ a[i][j] = a[i1] + a[ia[1][1];printf(“n最大值%3d,下標%d,%d”, max, m, n);printf(“n數組和%3d,對角線和%3d”, s, c);
//輸出所有列下標大于行下標的數組元素 for(i = 0;i <= 2;i++)for(j = 0;j <= 2;j++)if(j > i){ printf(“n行標: %d,列標: %d,元素: %d”, i, j, a[i][j]);} //數組f里元素均初始化為0 for(i = 0;i <= 2;i++)f[i] = 0;//求每列元素的和,并將其放入數組f中 for(i = 0;i <= 2;i++){ for(j = 0;j <= 2;j++)f[i] = f[i] + a[j][i];printf(“列下標為 %d的元素和為: %3d”, i, f[i]);}
//求所有能被2,3,5整除的數組元素的平方和 for(i = 0;i <= 2;i++)for(j = 0;j <= 2;j++){ if(a[i][j] %(2 *3 * 5)== 0)s1 = s1 + a[i][j] *a[i][j];} printf(“能被2,3,5整除的數組元素的平方和:%5dn”, s1);
//將二維數組賦值給一維數組,并輸出 n = 0;for(i = 0;i <= 2;i++)for(j = 0;j <= 2;j++){ b[n] = a[i][j];printf(“%5d”, b[n]);n++;} } 4-8 字符串應用舉例
#include #include main(){ char a[100], b[30], c[4][100];int i, j, k;//編程序實現gets函數功能如下: puts(“請輸入字符串a:n”);i = 0;while((a[i] = getchar())!= 'n'){ i++;} a[i] = '
主站蜘蛛池模板:
欧美日产国产精品日产|
国产白丝jk捆绑束缚调教视频|
亚洲国产婷婷香蕉久久久久久|
一本色道无码道dvd在线观看|
99热久久精里都是精品6|
色综合久久久久综合体桃花网|
亚洲精品国偷自产在线99人热|
女邻居的大乳中文字幕|
亚洲国产精品无码久久久久高潮|
国产在线精品一区二区三区|
国产又粗又猛又黄又爽无遮挡|
国模欢欢炮交啪啪150|
韩国无码av片在线观看|
精品卡一卡二卡3卡高清乱码|
又大又粗欧美黑人aaaaa片|
av无码免费无禁网站|
国产精品国产三级国产av′|
87福利午夜福利视频|
国产精品久久毛片av大全日韩|
成年黄页网站大全免费无码|
在线精品自偷自拍无码中文|
真人一进一出120秒试看|
99这里视频只精品2019|
国产suv精品一区二人妻|
色狠狠一区二区三区香蕉|
国产gv猛男gv无码男同网站|
中国少妇无码专区|
成人午夜国产内射主播|
狼人大香伊蕉在人线国产|
宅宅午夜无码一区二区三区|
上海少妇高潮狂叫喷水了|
亚洲欧美日韩国产成人|
偷窥国产亚洲免费视频|
日韩欧无码一区二区三区免费不卡|
国产成人av在线播放不卡|
日本边添边摸边做边爱的网站|
一本大道伊人av久久综合|
国产成人精品亚洲777|
无码午夜福利视频一区|
欧美精品一区二区a片免费|
曰韩无码二三区中文字幕|