提示输出错误,有如下两个可能情况:

1. 不符合题目给出的输出格式,自己输出了多余的内容或者格式不正确

2. 输入数据的时候,未考虑到输入错误的情况

针对2,有如下的例子:

错误的情况:

 1 int main(){
 2     
 3     int i = 0;
 4     int re =0;
 5     
 6 //    while(scanf("%d",&i) != EOF){
 7     while(1){
 8     
 9         cin>>i;
10         if(i < 1 || i > 1e+9)
11             break;
12         re = gupiao(i);
13         cout<<re<<endl;
14     } 
15     return 0;    
16 }
View Code

上面的输入未判断输入的数据这确,如要输入一个整数,但是输入的却是一个字符,因此,出现上面提示的OLE错误。

更改如下,下面的两个例子都是正确的:

例1

 1 int main(){
 2     int i = 0;
 3     int re =0;
 4   
 5     //while(scanf("%d",&i) != EOF){
 6        while(cin>>i ){
 7          if(i < 1 || i >1e+9)
 8                break;
 9         re = gupiao(i);//函数调用
10         cout<<re;//输出结果
11     } 
12     return 0;    
13 }
View Code

上面的输入自动的判别了输入的正确与否,输入与预期格式不匹配反过来将导致表达式cin>>i的返回值为false,因此while循环被终止。

例2

 1 int main(){
 2     int i = 0;
 3     int re =0;
 4   
 5     while(scanf("%d",&i) != EOF){
 6         re = gupiao(i);//函数调用
 7         cout<<re;//输出结果
 8     } 
 9     return 0;    
10 }
View Code

这种输入方法也是正确的,如果错误的话,就返回EOF,直接返回了,不会调用while循环体中的gupiao函数。

posted on 2016-09-06 23:00  人生一世,草木一秋。  阅读(66)  评论(0编辑  收藏  举报