[问题] 高中生 解题系统 b964

楼主: tyjh (....)   2018-09-20 21:28:14
题目网址
https://zerojudge.tw/ShowProblem?problemid=b964
找到参考解答
要问的是 while (scanf("%d",&n) !=EOF )
!=EOF 是什么意思呢
常常看到 竞赛题 为何都要这样写@@
用C++的 while ( cin>>n ) 是否也可呢?
#include <cstdio>
#include <cstdlib>
int cmp(const void * a, const void * b){
return ( *(int*)a - *(int*)b );
}
int main(){
int n,score[20],a60,b60;
while (scanf("%d",&n) !=EOF ){
a60=-1,b60=-1;
for(int i=0;i<n;i++){
scanf("%d",&score[i]);
}
qsort(score,n,sizeof(int),cmp);
for(int i=0;i<n;i++){//由前往后找小于60的最大数
if (score[i]<60) b60=score[i];
}
for(int i=n-1;i>=0;i
作者: MOONRAKER (㊣牛鹤鳗毛人)   2018-09-20 21:42:00
安安你好 你有看过scanf()走路吗
楼主: tyjh (....)   2018-09-20 21:58:00
哈 对耶 scanf 是输入 恩 我换个问法
作者: MOONRAKER (㊣牛鹤鳗毛人)   2018-09-20 22:47:00
……不是这个意思好吗
作者: moebear (萌熊)   2018-09-20 23:33:00
end of file
作者: Ori185 (Ori185)   2018-09-20 23:37:00
我在primer学到的是,EOF就像4楼讲的叫做档案终点,用来告诉程式我已经输入完毕的意思利用EOF来传达输入结束,可以避免用一些符号作输入结束时,又遇到要输出这些符号的状况
作者: bigbite (子子孙孙永保用)   2018-09-20 23:49:00
其实你去看scanf的manpage有提到"The value EOF is returned if the end of input is reached..."
楼主: tyjh (....)   2018-09-21 09:24:00
了解
作者: MOONRAKER (㊣牛鹤鳗毛人)   2018-09-21 14:18:00
你scanf()到底在哪里学的 为什么有一种你的课本上都没有范例程式的感觉 从上上次就是这样了
作者: bigbite (子子孙孙永保用)   2018-09-21 16:44:00
原po应该是刚开始学程式对吗?不懂的多问吧
作者: moebear (萌熊)   2018-09-22 03:45:00
可以多到http://www.cplusplus.com/ 这边查找

Links booklink

Contact Us: admin [ a t ] ucptt.com