标题:用类写的一个简单程序 为什么有问题?
只看楼主
zhao9302
Rank: 1
等 级:新手上路
帖 子:170
专家分:0
注 册:2007-5-10
 问题点数:0 回复次数:15 
用类写的一个简单程序 为什么有问题?

#include<iostream>
#include<string>

using namespace std;

class sort
{
private:
string str[5];
int i,j;
string temp;
public:
void setdate();
void sort();
void print();
};

void sort::setdate()
{
cout<<"请输入5个字符串:"<<endl;
for(i=0;i<5;i++)
cin<<str[i];
}

void sort::sort()
{
for(i=0;i<5;i++)
for(j=0;j<4-i;j++)
{
if(str[i]>str[j])
{
temp=str[i];
str[j]=str[i];
str[i]=temp;
}
}
}

void sort::print()
{
cout<<"排序后的字符串:";
for(i=0;i<5;i++)
cout<<str[i]<<'\t';
}


int main()
{
sort s1;
s1.setdate();
s1.sort();
s1.print();
return 0;
}

就是输入5个字符串 按从小到达排序 我怎么看都找不到错误 用编译器找的错误都觉得没问题
提示了一大堆错误


[此贴子已经被作者于2007-10-15 17:57:04编辑过]

搜索更多相关主题的帖子: void private include public 
2007-10-15 17:55
aipb2007
Rank: 8Rank: 8
来 自:CQU
等 级:贵宾
威 望:40
帖 子:2879
专家分:7
注 册:2007-3-18
得分:0 
cin >>
cout <<


还有你的排序看不懂!

Fight  to win  or  die...
2007-10-15 18:18
reedleaf
Rank: 2
等 级:新手上路
威 望:3
帖 子:62
专家分:0
注 册:2007-8-5
得分:0 

// ex21.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"


#include<iostream>
#include<string>

using namespace std;

class sort
{
private:
string str[5];
int i,j;
string temp;
public:
void setdate();
// void sort();//不能 有返回值 包括void
sort();
void print();
};

void sort::setdate()
{
cout<<"请输入5个字符串:"<<endl;
for(i=0;i<5;i++)
//cin<<str[i];
cin>>str[i];
}

//void sort::sort()
sort::sort()
{
for(i=0;i<5;i++)
for(j=0;j<4-i;j++)
{
if(str[i]>str[j])
{
temp=str[i];
str[j]=str[i];
str[i]=temp;
}
}
}

void sort::print()
{
cout<<"排序后的字符串:";
for(i=0;i<5;i++)
cout<<str[i]<<'\t';
}


int main()
{
sort s1;
s1.setdate();
// s1.sort();//不能调用

s1.print();
return 0;
}

你的错误我都“//”标出来了


2007-10-15 19:28
reedleaf
Rank: 2
等 级:新手上路
威 望:3
帖 子:62
专家分:0
注 册:2007-8-5
得分:0 

修改后可以运行了
你可以看一下是不是你想要的结果


2007-10-15 19:29
zhao9302
Rank: 1
等 级:新手上路
帖 子:170
专家分:0
注 册:2007-5-10
得分:0 

晕了 我用的是冒泡排序 为什么没排?


我要一步一步往上爬……
2007-10-15 20:00
reedleaf
Rank: 2
等 级:新手上路
威 望:3
帖 子:62
专家分:0
注 册:2007-8-5
得分:0 

等会我再帮你看看
现在吃饭去了


2007-10-15 20:02
zhao9302
Rank: 1
等 级:新手上路
帖 子:170
专家分:0
注 册:2007-5-10
得分:0 
谢谢拉

我要一步一步往上爬……
2007-10-15 20:10
aipb2007
Rank: 8Rank: 8
来 自:CQU
等 级:贵宾
威 望:40
帖 子:2879
专家分:7
注 册:2007-3-18
得分:0 
说了你那不是冒泡排序,根本就不能排

你可以去搜索下冒泡的算法逻辑。

就在这个版也有。

[此贴子已经被作者于2007-10-15 20:12:05编辑过]


Fight  to win  or  die...
2007-10-15 20:10
reedleaf
Rank: 2
等 级:新手上路
威 望:3
帖 子:62
专家分:0
注 册:2007-8-5
得分:0 

#include<iostream>
#include<string>

using namespace std;

class sort
{
private:
char str[5];
int i,j;
char temp;
public:
void setdate();
// void sort();
sort();
void print();
};

sort::sort()
{
cout<<"请输入5个字符串:"<<endl;
for(i=0;i<5;i++)
//cin<<str[i];
cin>>str[i];
}

//void sort::sort()
void sort::setdate()
{
for(i=0;i<5;i++)
//for(j=0;j<4-i;j++)
for(j=i+1;j<5;j++)
{
if(str[i]>str[j])
{
temp=str[i];
str[i]=str[j];
str[j]=temp;
}
}
}

void sort::print()
{
cout<<"排序后的字符串:";
for(i=0;i<5;i++)
cout<<str[i]<<'\t';
}


int main()
{
sort s1;
s1.setdate();
// s1.sort();//

s1.print();
return 0;
}

太多错误
只能在你的基础上改改
现在可以实现功能了
但是算法很不好

需要一起努力啊!!!


2007-10-15 20:17
zhao9302
Rank: 1
等 级:新手上路
帖 子:170
专家分:0
注 册:2007-5-10
得分:0 
我也发现错误太多了
而刚刚你改了这个算法 我运行结果本是要 将 5个字符串排序的 结果成了 就是排给输入的单词

而我找网上找了个冒泡排序
for(i=0;i<N;i++)
{
for(j=0;j<N-1-i;j++)
{
if(grade[j]<grade[j+1])
{
temp=grade[j+1];
grade[j+1]=grade[j];
grade[j]=temp;
}
}
}


我按这个方法改了 同样是不排序

我要一步一步往上爬……
2007-10-15 20:23



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-177855-1-1.html




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

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