Re: [問題] SOME PROBLEMS...

看板TransCSI作者 (今年是日星來台年~真嗨)時間18年前 (2007/07/12 14:58), 編輯推噓5(507)
留言12則, 3人參與, 最新討論串4/5 (看更多)
※ 引述《ahongyeh (小葉子)》之銘言: : ※ 引述《antirazin (今年是日星來台年~真嗨)》之銘言: : : 1.scanf()可以連續鍵入不同變數的值嗎? : : EX: scanf("%d %d",&a,&b) : : 2.float 和 double的差別? : : 3.96中興資工那題從LIST裡面印出最大最小值那題有人會寫嗎?可以秀一下嗎? : #include<stdio.h> : #define MAX 100 : main(){ : int a[MAX],max,min,ch,i=0,j; : printf("Please input numbers(split in space): "); : do{ : scanf("%d",&a[i++]); : scanf("%c",&ch); : }while(ch==' '); ^^^^^^^^^^^^^^^^ 這邊看不懂為什麼要這樣寫 是說雖然MAX等於100,可是如果這樣寫可以隨意輸入任意個數的值, 不用輸入100個值, 你的意思是這樣嗎? 不過看不懂ch的型態是int為什麼可以等於空字元=> ' ' : max=a[0]; : min=a[0]; : for(j=0;j<i;j++){ : if(a[j]>max) max=a[j]; : if(a[j]<min) min=a[j]; : } : printf("The largest is %d, the least is %d.\n",max,min); : system("pause"); : } : 剛剛run過一次~~應該是沒錯~~ : 不過我發現在我考的時候有些小地方寫錯了... @@ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.230.182.236

07/12 19:49, , 1F
ch應該要宣告為char吧? 不然do/while只會做一次
07/12 19:49, 1F

07/12 19:50, , 2F
這樣就可以輸入任意個數(用空白隔開&不超過MAX)
07/12 19:50, 2F

07/12 20:01, , 3F
樓上能解釋一下有什麼差別嗎?char和int int不是比較大嗎?
07/12 20:01, 3F

07/12 20:01, , 4F
多謝~~
07/12 20:01, 4F

07/12 20:07, , 5F
跟大小沒關吧~我沒記錯的話~空白在C/C++裡是當char處理
07/12 20:07, 5F

07/12 20:14, , 6F
int是不能assign為空白的~假設這題(ch==' ')這行改成
07/12 20:14, 6F

07/12 20:16, , 7F
(ch=='a')這樣每個數之間就要用a來隔開了~
07/12 20:16, 7F

07/12 20:17, , 8F
有問題可再提出討論~有錯誤也煩請指正~謝謝
07/12 20:17, 8F

07/12 20:49, , 9F
我想說的是~int型態可以assign為ASCII字元~空白當然可以!
07/12 20:49, 9F

07/12 20:51, , 10F
不然你可以編譯看看:int test=' ' 這樣子的宣告是無誤的~
07/12 20:51, 10F

07/12 20:53, , 11F
因為它會將字元轉換成ASCII碼~~
07/12 20:53, 11F

07/12 21:48, , 12F
我懂意思了~感謝樓上~
07/12 21:48, 12F
文章代碼(AID): #16bT4bAL (TransCSI)
討論串 (同標題文章)
文章代碼(AID): #16bT4bAL (TransCSI)