Re: [問題] C語言如何判斷最大值
※ 引述《umi74 (Kick-Ass)》之銘言:
: 剛學C語言 遇到滿多困難 有請高手幫忙一下@@
: 輸入N筆資料 0=<N<=10 的總和 可是我只能一次打10個
: 不然會出現錯誤 請問怎麼解決呢 附上我的原始碼
: int a,b,c,d,e,f,g,h,i,j,x;
: scanf("%d,%d,%d,%d,%d,%d,%d,%d,%d,%d",&a,&b,&c,&d,&e,&f,&g,&h,&i,&j);
: x=a+b+c+d+e+f+g+h+i+j;
: printf("總和=%d",x);
: 還有怎麼找這10個數字的最大值呢 @@
: 有規定這10個數不能大於100
本來看完水滸傳dvd想睡了,在上床前逛逛版面看到這個問題.
其實我本來也不想雞婆,因為已經有熱心人士提供了程式碼.
不過我看到原po推文問如何得知輸入數字的數目.
想建議原po何不用檢查argc就知道你輸入了多少數字?
當然要比大小得把argv裡面的字串換成整數,剛好還可以檢查有沒有大於100
/************************以下跟程式無關****************************/
還有,原po推文有提及"學校還沒教" <---這個踩到我的點,我覺得這根本不是理由
程式語言這種東西跟數學一樣需要練習,根本就沒有教完的一天
怎麼可以奢望老師們把所有的東西教給你?
所以不能只求進度跟上課堂,你還要自己先看過,先打過,先try過,再來發問.
有些簡單的演算法,程式語法,資料結構平時就應先下一點功夫看看.
少花一些時間打魔獸,增加一下自己的程式功力,我想這要求應該不過份吧?
其實這些心裡話早就想講了,不是針對原po,有些id發問完一次就跑,內容則是十足的作業文.
好一點的會說個謝謝,糟一點的就問完自刪,所以板上才會發起投票禁止自刪.
抱歉,言重了.前陣子一堆文章違規被砍,搞得版面亂糟糟的,心理煩悶,在此抒發.
很抱歉跟各位努力經營的板友們吐苦水,還望大家海涵.
謝謝大家
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 118.161.185.142
→
11/01 09:42, , 1F
11/01 09:42, 1F
推
11/01 10:21, , 2F
11/01 10:21, 2F
------------------------------------------------------------------------------
剛剛起床,臨時給了個例子,若有闕漏尚請板友指正,謝謝.
#include<stdio.h>
#include <stdlib.h>
int main(int argc, char* argv[])
{
int count;
int max;
int *parray;
/*創建動態陣列*/
parray = (int*)malloc((argc - 1) * sizeof(int));
for(count = 0; count < argc - 1; count ++)
{
*(parray + count) = atoi(argv[count + 1]);
}
/*這邊開始檢查參數是否正確,像是參數至少要三個 : 檔名 數字1 數字2
*當然還要檢查是否數字有小於100,不過這邊只實做了檢查參數數目,
*其他檢查實做給需要者自行撰寫 */
if(argc <= 2)
{
printf("用法: %s 數字1 數字2 數字3 ...\n",argv[0]);
return 0;
}
/*下面開始找最大值*/
max = *parray;
for(count = 1; count < argc - 1; count ++)
{
if(max < *(parray + count))
{
max = *(parray + count);
}
}
printf("最大值是 %d\n", max);
/*別忘了要把記憶體還回去*/
free(parray);
return 0;
}
----------------------------------------------------------------
實際測試:
bigdick@bigdick:~/code$ clear && gcc arg_example.c && ./a.out 1 2 3
最大值是 3
就算數字超過10個也行:
bigdick@bigdick:~/code$ ./a.out 1 100 2010 30505 41 6 8 9 10 22 31
最大值是 30505
如果輸入的參數不夠就給你警告:
bigdick@bigdick:~/code$ ./a.out 1
用法: ./a.out 數字1 數字2 數字3 ...
這樣用我覺得整個程式比較自由一點
作業環境在linux debian Lenny 上 gcc 4.1.3 可正常編譯
-----------------------------------------------------------------
※ 編輯: DEATHX 來自: 118.161.185.142 (11/01 11:31)
→
11/01 11:33, , 3F
11/01 11:33, 3F
推
11/01 11:40, , 4F
11/01 11:40, 4F
→
11/01 11:40, , 5F
11/01 11:40, 5F
討論串 (同標題文章)
完整討論串 (本文為第 3 之 3 篇):