當前位置:首頁 » 編程語言 » c語言順序程序設計

c語言順序程序設計

發布時間: 2024-09-10 09:19:19

c語言簡單順序程序設計原理是什麼

什麼順序程序啊?是
(1)順序結構
順序結構的程序設計是最簡單的,只要按照解決問題的順序寫出相應的語句就行,它的執行順序是自上而下,依次執行。
例如;a = 3,b = 5,現交換a,b的值,這個問題就好像交換兩個杯子水,這當然要用到第三個杯子,假如第三個杯子是c,那麼正確的程序為: c = a; a = b; b = c; 執行結果是a = 5,b = c = 3如果改變其順序,寫成:a = b; c = a; b = c; 則執行結果就變成a = b = c = 5,不能達到預期的目的,初學者最容易犯這種錯誤。 順序結構可以獨立使用構成一個簡單的完整程序,常見的輸入、計算,輸出三步曲的程序就是順序結構,例如計算圓的面積,其程序的語句順序就是輸入圓的半徑r,計算s = 3.14159*r*r,輸出圓的面積s。不過大多數情況下順序結構都是作為程序的一部分,與其它結構一起構成一個復雜的程序,例如分支結構中的復合語句、循環結構中的循環體等

② 設計C語言程序,用一維數組輸入N個整數,將這n個整數按從大到小排列

給你看看C語言的三種排序方法吧,這是我們老師給總結的,你看懂後就自己在寫這個程序吧!

一、冒泡法(起泡法)
演算法要求:用起泡法對10個整數按升序排序。
演算法分析:如果有n個數,則要進行n-1趟比較。在第1趟比較中要進行n-1次相鄰元素的兩兩比較,在第j趟比較中要進行n-j次兩兩比較。比較的順序從前往後,經過一趟比較後,將最值沉底(換到最後一個元素位置),最大值沉底為升序,最小值沉底為降序。
演算法源代碼:
# include <stdio.h>
main()
{
int a[10],i,j,t;
printf("Please input 10 numbers: ");
/*輸入源數據*/
for(i=0;i<10;i++)
scanf("%d",&a[i]);
/*排序*/
for(j=0;j<9;j++) /*外循環控制排序趟數,n個數排n-1趟*/
for(i=0;i<9-j;i++) /*內循環每趟比較的次數,第j趟比較n-j次*/
if(a[i]>a[i+1]) /*相鄰元素比較,逆序則交換*/
{ t=a[i];
a[i]=a[i+1];
a[i+1]=t;
}
/*輸出排序結果*/
printf("The sorted numbers: ");
for(i=0;i<10;i++)
printf("%d ",a[i]);
printf("\n");
}
演算法特點:相鄰元素兩兩比較,每趟將最值沉底即可確定一個數在結果的位置,確定元素位置的順序是從後往前,其餘元素可能作相對位置的調整。可以進行升序或降序排序。
二、選擇法
演算法要求:用選擇法對10個整數按降序排序。
演算法分析:每趟選出一個最值和無序序列的第一個數交換,n個數共選n-1趟。第i趟假設i為最值下標,然後將最值和i+1至最後一個數比較,找出最值的下標,若最值下標不為初設值,則將最值元素和下標為i的元素交換。
演算法源代碼:
# include <stdio.h>
main()
{
int a[10],i,j,k,t,n=10;
printf("Please input 10 numbers:");
for(i=0;i<10;i++)
scanf("%d",&a[i]);
for(i=0;i<n-1;i++) /*外循環控制趟數,n個數選n-1趟*/
{
k=i; /*假設當前趟的第一個數為最值,記在k中 */
for(j=i+1;j<n;j++) /*從下一個數到最後一個數之間找最值*/
if(a[k]<a[j]) /*若其後有比最值更大的*/
k=j; /*則將其下標記在k中*/
if(k!=i) /*若k不為最初的i值,說明在其後找到比其更大的數*/
{ t=a[k]; a[k]=a[i]; a[i]=t; } /*則交換最值和當前序列的第一個數*/
}
printf("The sorted numbers: ");
for(i=0;i<10;i++)
printf("%d ",a[i]);
printf("\n");
}
演算法特點:每趟是選出一個最值確定其在結果序列中的位置,確定元素的位置是從前往後,而每趟最多進行一次交換,其餘元素的相對位置不變。可進行降序排序或升序排序。
三、插入法
演算法要求:用插入排序法對10個整數進行降序排序。
演算法分析:將序列分為有序序列和無序列,依次從無序序列中取出元素值插入到有序序列的合適位置。初始是有序序列中只有第一個數,其餘n-1個數組成無序序列,則n個數需進n-1次插入。尋找在有序序列中插入位置可以從有序序列的最後一個數往前找,在未找到插入點之前可以同時向後移動元素,為插入元素准備空間。
演算法源代碼:
# include <stdio.h>
main()
{
int a[10],i,j,t;
printf("Please input 10 numbers: ");
for(i=0;i<10;i++)
scanf("%d",&a[i]);
for(i=1;i<10;i++) /*外循環控制趟數,n個數從第2個數開始到最後共進行n-1次插入*/
{
t=a[i]; /*將待插入數暫存於變數t中*/
for( j=i-1 ; j>=0 && t>a[j] ; j-- ) /*在有序序列(下標0 ~ i-1)中尋找插入位置*/
a[j+1]=a[j]; /*若未找到插入位置,則當前元素後移一個位置*/
a[j+1]=t; /*找到插入位置,完成插入*/
}
printf("The sorted numbers: ");
for(i=0;i<10;i++)
printf("%d ",a[i]);
printf("\n");
}
演算法特點:每趟從無序序列中取出第一個數插入到有序序列的合適位置,元素的最終位置在最後一趟插入後才能確定位置。也可是先用循環查找插入位置(可從前往後或從後往前),再將插入位置之後的元素(有序列中)逐個後移一個位置,最後完成插入。該演算法的特點是在尋找插入位置的同時完成元素的移動。因為元素的移動必須從後往前,則可將兩個操作結合在一起完成,提高演算法效率。仍可進行升序或降序排序。

這應該會對你很有用的,好好學,把它弄懂!祝你好運!

③ C語言中用於結構化程序設計的三種基本結構是

三種基本結構為順序結構,選擇結構和循環結構。

1、順序結構

順序結構表示程序中的各操作是按照它們出現的先後順序執行的。

大多數C語言語句都是順序結構的, 按照代碼的先後順序執行。

比如

inta;
a=5;
printf("%d",a);

這個代碼就是先定義a,然後賦值,最後輸出,嚴格按照代碼的順序進行執行。

2、選擇結構

選擇結構表示程序的處理步驟出現了分支,需要根據某一特定的條件選擇其中的一個分支執行。選擇結構有單選擇、雙選擇和多選擇三種形式。

在C語言中,選擇結構有兩種實現方法, 一種是if-else語句,另一種為switch-case語句。

3、循環結構

循環結構表示程序反復執行某個或某些操作,直到某條件為假(或為真)時才可終止循環。循環結構的基本形式有兩種:當型循環和直到型循環。

當型循環:表示先判斷條件,當滿足給定的條件時執行循環體,並且在循環終端處流程自動返回到循環入口;如果條件不滿足,則退出循環體直接到達流程出口處。因為是"當條件滿足時執行循環",即先判斷後執行,所以稱為當型循環。

直到型循環:表示從結構入口處直接執行循環體,在循環終端處判斷條件,如果條件不滿足,返回入口處繼續執行循環體,直到條件為真時再退出循環到達流程出口處,是先執行後判斷。因為是"直到條件為真時為止",所以稱為直到型循環。

在C語言中,循環有for循環,while循環,和do...while三種常見的循環。

另外還可以用goto語句構建循環,但並不推薦使用。

④ 如何用C語言設計程序排列6個數字的大小順序

排序數組可以使用冒泡演算法:如果前一個數據比後一個大,則交換。

{

int i,j,t,a[6];

printf("Please input 6 integers: ");

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

scanf("%d",&a[i]);

for(i=0;i<5;i++) /* 冒泡法排序 */

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

if(a[j]>a[j+1])

{t=a[j];/* 交換a[i]和a[j] */

a[j]=a[j+1];

a[j+1]=t;

}

優點:

簡潔緊湊、靈活方便:C語言一共只有32個關鍵字,9種控制語句,程序書寫形式自由,區分大小寫。把高級語言的基本結構和語句與低級語言的實用性結合起來。C 語言可以像匯編語言一樣對位、位元組和地址進行操作,而這三者是計算機最基本的工作單元。

以上內容參考:網路-c語言程序設計

⑤ 濡備綍鐢╟璇璦緙栧啓涓涓紼嬪簭錛屽疄鐜版寜浠庡ぇ鍒板皬鐨勯『搴忔帓搴忚緭鍑10涓鏁

鐢ㄩ夋嫨鎺掑簭娉曠紪鍐檆璇璦錛屽疄鐜頒粠閿鐩樹笂杈撳叆10涓鏁幫紝鎸変粠澶у埌灝忕殑欏哄簭鎺掑簭杈撳嚭銆備唬鐮佸備笅錛

#include<stdio.h>

int main()

{

int i,j,a[10],t;

printf("杈撳叆鏁");

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

scanf("%d",&a[i]);

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

{

for (j = i + 1; j < 10;j++)

if (a[i] < a[j]){

t = a[i];

a[i] = a[j];

a[j] = t;

}

}

printf("浠庡ぇ鍒板皬");

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

printf("%2d", a[i]);

return 0;

}

鎵╁睍璧勬枡錛

浠g爜榪樺彲浠ヨ捐★紝濡備笅錛

#include<stdio.h>

int main()

{

int a[10],i,j,t;//瀹氫箟鏁扮粍;

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

scanf("%d",&a[i]);//緇欐暟緇勮祴鍊;

}

for(i=0;i<9;i++)//10涓鏁幫紝榪涜9杞姣旇緝;

for(j=0;j<10-i;j++){//絎涓涓鏁版瘮杈9嬈★紝渚濇¢掑噺;

if(a[j]>a[j+1]) {//浜ゆ崲鍊;

t=a[j];

a[j]=a[j+1];

a[j+1]=t;

}

}

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

printf("%d ",a[i]);//杈撳嚭鏁扮粍鐨勫;

}

return 0;

}

}

printf("the sorted numbers: ");

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

printf(" %d",a[i]);

printf(" ");

}

鍙傝冭祫鏂欙細鐧懼害鐧劇-printf

熱點內容
dhcp伺服器無法連接ip地址 發布:2024-11-25 03:23:09 瀏覽:949
ts伺服器地址 發布:2024-11-25 03:19:26 瀏覽:295
蘋果設置新的id賬號和密碼忘了怎麼辦啊 發布:2024-11-25 03:12:28 瀏覽:11
安卓電腦鍵盤圖標怎麼刪除 發布:2024-11-25 03:07:52 瀏覽:143
洞庭游戲源碼 發布:2024-11-25 03:07:05 瀏覽:74
相關檢測演算法 發布:2024-11-25 03:02:44 瀏覽:919
壓縮機抽氣器 發布:2024-11-25 03:02:43 瀏覽:325
天天酷跑的文件是哪個文件夾 發布:2024-11-25 03:01:00 瀏覽:24
劉奕君訪問 發布:2024-11-25 02:52:04 瀏覽:73
ftp郵件報警 發布:2024-11-25 02:46:22 瀏覽:217