| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 610 人关注过本帖
标题:求大神看看我的程序哪里错了,求一个txt文件里的最大值和最小值,最大值输出 ...
只看楼主 加入收藏
zhaobuzhule
Rank: 2
等 级:论坛游民
帖 子:19
专家分:12
注 册:2014-1-15
收藏
 问题点数:0 回复次数:3 
求大神看看我的程序哪里错了,求一个txt文件里的最大值和最小值,最大值输出没问题,最小值总是不对
#include<iostream>
#include<cstdlib>
#include<fstream>
using namespace std;
void zuidazhi(ifstream &in);
void zuixiaozhi(ifstream &in);
int main()
{
    ifstream in;
    in.open("int.txt");
    if(in.fail())
    {
        cout<<"流建立失败!"<<endl;
        exit(1);
    }
    zuidazhi(in);
    zuixiaozhi(in);
    in.close();
    return 0;
}
void zuidazhi(ifstream &in)
{
    int max,next;
    in>>max;
    while(in>>next)
    {
        if(next>max)
            max=next;
    }
    cout<<"int文件中最大值为"<<max<<endl;
    return;
}
void zuixiaozhi(ifstream &in)
{
    int min,next;
    in>>min;
    cout<<min<<endl;
    while(in>>next)
    {
        if(next<min)
            min=next;
    }
    cout<<"int文件中最小值是"<<min<<endl;
    return;
}
txt文件内容是23 123 13 1244 123 1321 1223 233 21 2 1 23 3333
搜索更多相关主题的帖子: include return 最大值 
2014-03-23 20:32
zhaobuzhule
Rank: 2
等 级:论坛游民
帖 子:19
专家分:12
注 册:2014-1-15
收藏
得分:0 
输出min的时候总是一个负的随机值,怎么回事啊?
2014-03-23 20:36
zhaobuzhule
Rank: 2
等 级:论坛游民
帖 子:19
专家分:12
注 册:2014-1-15
收藏
得分:0 
我终于发现问题了,原来in已经在zuidazhi函数中完成文件内所有值的赋值,不能在zuixiaozhi函数中进行赋值了,必须新建一个流才能在zuixiaozhi函数中进行赋值。我修改成下面的代码就没问题了#include<iostream>
#include<cstdlib>
#include<fstream>
using namespace std;
void zuidazhi(ifstream &in1);
void zuixiaozhi(ifstream &in2);
int main()
{
    ifstream in1,in2;
    in1.open("int.txt");
    if(in1.fail())
    {
        cout<<"流建立失败!"<<endl;
        exit(1);
    }
    in2.open("int.txt");
    if(in2.fail())
    {
        cout<<"流建立失败!"<<endl;
        exit(1);
    }
    zuidazhi(in1);
    zuixiaozhi(in2);
    in1.close();
    in2.close();
    return 0;
}
void zuidazhi(ifstream &in1)
{
    int max,next;
    in1>>max;                     
    while(in1>>next)              
    {
        if(next>max)
            max=next;
    }
    cout<<"int文件中最大值为"<<max<<endl;
    return;
}
void zuixiaozhi(ifstream &in2)
{
    int min,next;
    in2>>min;                  
    while(in2>>next)
    {
        if(next<min)
            min=next;
    }
    cout<<"int文件中最小值是"<<min<<endl;
    return;
}

2014-03-23 21:10
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9025
专家分:54030
注 册:2011-1-18
收藏
得分:0 
不需要重新打开,先clear再seekg
但最佳的做法是一次遍历就将最大值和最小值同时找到
2014-03-24 09:31
快速回复:求大神看看我的程序哪里错了,求一个txt文件里的最大值和最小值,最大 ...
数据加载中...
 
   



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

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