| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1060 人关注过本帖
标题:求助大佬= =为什么我的代码上传后显示Output limit exceed
只看楼主 加入收藏
wure
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2018-10-21
结帖率:50%
收藏
已结贴  问题点数:10 回复次数:2 
求助大佬= =为什么我的代码上传后显示Output limit exceed
题目是验证哥德巴赫猜想= =
#include<stdio.h>
#include<math.h>
int ig(int n)
{
    int i,count=0;
    double a=sqrt(n);
    for(i=2;i<=a;i++)
        if(n%i==0)
            count++;
    if(count)
        return 0;
    else
        return 1;   
}
int main()
{
    int n,a,b,i;
    while(scanf("%d",&n)!=EOF,n>=6&&n<=2000000000&&n%2==0)
    {
        a=b=n/2;
        if(ig(a)&&ig(b))
            printf("%d %d\n",a,b);
        else
        {
            for(;ig(a)==0||ig(b)==0;a--,b++);
            printf("%d %d\n",a,b);
        }                    
    }
    return 0;
}
搜索更多相关主题的帖子: 代码 limit int count return 
2018-11-08 23:03
Tomorrw_I
Rank: 10Rank: 10Rank: 10
等 级:禁止访问
威 望:6
帖 子:406
专家分:1712
注 册:2018-10-16
收藏
得分:10 
Output Limit Exceed是超过输出限制(OLE)错误,提示你的程序产生了过多的输出信息,一般是由于死循环造成的。
你的程序发生上述错误的主要原因是循环语句while(scanf("%d",&n))产生的。因为scanf函数当有输入数据时,返回值是读入数据的个数。当没有输入数据时,返回值是-1(预定义为EOF)。例如本程序是读入一个n值,读入sample input每行开头的数据4和5时,分别返回1,当没有输入数据时,就返回-1,此时循环条件非0,永真,则形成了无限循环。
因此,需要将该语句修改为:while(scanf("%d",&n)!=-1)或while(scanf("%d",&n)!=EOF),则在没有输入数据时,循环条件为0,退出循环。


直接百度,都会出来这个呢!
    while(scanf("%d",&n)!=EOF,n>=6&&n<=2000000000&&n%2==0)
更何况,EOF后面,还是个逗号!!作为一个新手,能不能别在一个括号没内,写这么繁琐的条件判断

学C有用吗?
学C++有前途吗?
数据库有必要学吗?
……
别问,你还什么都不会,学就对了
……
2018-11-09 04:29
wure
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2018-10-21
收藏
得分:0 
回复 楼主 wure
明白了,感谢。
2018-11-09 16:35
快速回复:求助大佬= =为什么我的代码上传后显示Output limit exceed
数据加载中...
 
   



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

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