第乙個C語言程式!

2021-10-10 07:44:21 字數 2889 閱讀 2055

第乙個c語言程式。

其實以前斷斷續續都學過一些c語言,但是除了printf 還真沒幾個記得住的。

選了一本《c語言名題精選百題技巧》,今天開始做第一題:

陣列的最長平台: 乙個隨機的陣列,每個元素0~10之間,整型。然後按照從小到大排列。

選出最長的那個數字。

於是開始寫:

陣列: a[i]

陣列長度  sizeof(a)/sizeof(int)

隨機:rand()

從小到大排列: a[i]>a[j] 則 temp=a[i],a[i]=a[j],a[j]=temp;

最後……我去,怎麼數陣列的個數,容我仔細想想?

先把前面寫好的**貼出來吧:

#include #include #include int main() 

for (i=0;ia[j])

} }

for (i=0;i<100;i++) }

system("pause");

return 0;

}

1、思路:定義11個變數:a[i]=0時,第乙個變數++,a[i]=2時 第二個變數累加,以此類推。

那如果不知道變數的值是多少呢?另外這個方法變數太多了。

2.、思路2:定義3個變數:a[i]=a[i+1]時,第乙個變數++,遍歷完了,把第乙個變數的值付給第二個變數,a[i]付給第三個變數

遍歷第二次,,這次還是重複上一次的遍歷,把第乙個變數的值和第二個變數的值進行比較,如果第乙個大於第二個,則第三個變數等於a[i] 否則a[i]還等於原來的值

遍歷完。列印第三個變數以及 第二個變數。就是那個數字,並且有多少個。

3、最長平台數只有乙個嗎?有可能不止,我隨機了1~9 的100個陣列,如果7和9 都是19個怎麼辦?

錯誤**示範:

#include #include #include int main() 

//陣列排序

for (i=0;ia[j])

}}//陣列輸出,每隔10個換一行。

for (i=0;i<100;i++) }

//求最長平台

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

else

if (c想了一晚上,還是想不出來。於是只好查答案……然後讓答案打臉……

#include #include #include int a[100],aa;

int i;

int count = 0;

int longest =0;

int b=0;

int c=0;

int j;

int temp;

int len;

int longest_plateau(int x,int n)

return length;

}int main()

//陣列排序

for (i=0;ia[j])

}}//陣列輸出,每隔10個換一行。

for (i=0;i<100;i++) }

//求最長平台

int length = longest_plateau(a,100);

printf("the longest_plateau is %d\n",length);

system("pause");

return 0;

}

這個**有個問題是,我想要知道是哪個數字最長,結果就是查不到,繼續在這個基礎上努力改**。

不過這個              

if(x[i] == x[i - length])                        

length ++;

是真的巧妙,不管最大的是大幾,只要打就加1就可以了,加到最後肯定是最大值……以下是執行結果:

下面思考下,怎麼把最大的那個數列印出來。

最後在我冥思苦想了半個小時……娃哈哈,終於列印出來了:

#include #include #include int a[100],aa;

int i;

int count = 0;

int longest =0;

int b=0;

int c=0;

int j;

int temp;

int len;

int longest_plateau(int x,int n)

} return length;

}int main()

//陣列排序

for (i=0;ia[j])

}}//陣列輸出,每隔10個換一行。

for (i=0;i<100;i++) }

//求最長平台

int length = longest_plateau(a,100);

printf("the longest_plateau is %d the longest number is %d\n",length,a[b]);

system("pause");

return 0;

}

起始累加的是長度,只要a[i]=a[i-length]的長度有增加,則length 就增加乙個,那麼最後乙個增加的值,就是最長的那個數字,把這個a[i-length] 記錄下來就可以了。

執行結果:

下面再思考一下,如果有2個平台等長怎麼辦?就像這個隨機數組,如果2和7 都是最長的怎麼辦?

我的天啊~我真是第一次這麼寫**……功能再增加下去,是不是就可以做成小遊戲了……

第乙個C語言程式

編寫第乙個c語言程式,在螢幕顯示hello world 也就是列印hello world 編寫工具為coderunner include 包含檔案標頭檔案 int main int argc,char argv include 求1到100的總和 int main int argc,char arg...

第乙個C 程式

include using namespace std 宣告函式 void dosomething int start,int length,int center,bool order 入口 int main start 開始字元 length 字元長度 center 中間字元 order 順序還是...

第乙個c程式

include 新增必要標頭檔案 intmain 主函式,函式入口相信大部分人的第乙個c語言程式都是列印hello world!在這個函式中 第一行 是引用了乙個標準輸入輸出流的標頭檔案,這個可以說是寫 c 語言 必備的。在 c 語言中會有許多標準庫函式,這是 c 語言的開發者和許多大佬在編譯器中留...