| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 498 人关注过本帖, 1 人收藏
标题:关于EOF的用法,求指教....
只看楼主 加入收藏
解你
Rank: 2
等 级:论坛游民
帖 子:15
专家分:11
注 册:2012-12-5
结帖率:80%
收藏(1)
已结贴  问题点数:20 回复次数:3 
关于EOF的用法,求指教....
不懂得怎么用EOF,想知道他是怎么用的,或者可以给个例子给我吗??
题目:【INPUT】
输入包含多组测试数据,每组测试数据一行,每行5个数,空格隔开。
保证着所有的数据在32位int(即c语言中的long int)范围内;
【output】
输出每组测试数据的结果,没个结果占据一行,每行输出对应输入行中5个数中次大的数。
保证答案也在32位int(即c语言的long int)范围内;
【sample input】
1 2 3 5 4
7 1 7 9 3
【sample output】
4
7
这是我自己的答案:
#include<stdio.h>
int main()
{
    int a[5],k;
    int i,j;
    for (i=0;i<5;i++)
        scanf("%d",&a[i]);
        {
            for(i=0;i<2;i++)
            {
                for(j=i+1;j<5;j++)
                    if(a[j]>a[j-1])
                    {
                        k=a[j-1];
                        a[j-1]=a[j];
                        a[j]=k;
                    }
            }
            printf("%d\n",a[1]);
        }
        return 0;
}
不知道我这里是什么错误,编译,组建都没有错,就是在运行的时候不知道为什么得出了一个很怪的结果!!!
还有就是针对这道题我应该在哪里加入哪个EOF,我原先像这样子写while(scanf("%d"&a[i])!=EOF)
这样子对吗??
(还有一个问题:说出来不怕大家笑话,我是个新手,不知道结贴是什么意思?能告诉我什么意思吗??)
搜索更多相关主题的帖子: 测试 include 
2012-12-11 12:03
daniel_
Rank: 5Rank: 5
等 级:职业侠客
帖 子:212
专家分:307
注 册:2012-11-13
收藏
得分:7 
#include<stdio.h>

int main()
{
    int a[5] = {0};
    int k = 0;
    int i = 0;
    int j = 0;
    int temp = 0;

    printf("please input five number\n");
    for (i = 0;i < 5;i++)
    {
        scanf("%d",&a[i]);
    }

    for(j = 0;j < 5;j++)
    {
        for(k = 0; k< 5;k++)
        {
            if(a[k] < a[k+1])
            {
                temp = a[k];
                a[k] = a[k+1];
                a[k+1] = temp;
            }   
        }

    }
      
            printf("%d\n",a[1]);
        return 0;
}
------------
这是最简单的冒泡排序
其中两个for可以简化一下
你可以试一下
2012-12-11 13:33
炎黄宇宙
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:53
专家分:104
注 册:2012-11-12
收藏
得分:7 
EOF的例子:
int c;
while( (c = getchar())!= EOF)
{
putchar(c);
}
2012-12-11 14:27
一个孩子
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:5
帖 子:356
专家分:954
注 册:2012-10-1
收藏
得分:7 
程序代码:
#include<stdio.h>
#define N 10
int main()
{
    int i=0;
    int a[N];
    int j=0,k=0,temp;
    while(scanf("%d",&a[i])!=EOF)
    {
        i++;
        if(i%5==0&&i!=0)//控制数量
        {
           for(j=0;j<i-1;j++)
           {
               for(k=0;k<i-1-j;k++)
               {
                   if(a[k]<a[k+1])
                   {
                       temp=a[k];
                       a[k]=a[k+1];
                       a[k+1]=temp;
                   }
               }
           }
           printf("%d\n",a[1]);//输出第二大
           i=0;//重新初始化
        }
       
    }
    return 0;
}
这个满足你的要求。就是变量有点多

重要的不是结果,是求一个结果的过程,哪怕千难万难,当你有想要的结果时,你已走的很远
2012-12-11 15:38
快速回复:关于EOF的用法,求指教....
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.038419 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved