C++输出三个字符窜要求按字母由小到大或由大到小输出

我要程序啊~~~~~~~~~~~~

这里有两段代码,都是可行的。
代码是按从小到大排序的,输出顺序或者排序的顺序楼主可以根据需要自己修改。
代码1:
#include <iostream>
#include <cstring>
/*包含这个头文件是因为要用到函数strcmp(const char*, const char*),
它是用来按字典序比较两个字符数组大小的。若前者大,返回值为正;
若后者大,返回值为负;若相等,返回值为0.可以理解为前者减后者做差,
这样好记.
strcpy(const char*, const char*),将后面一个数组的内容复制给前面一个
*/
using namespace std;
const int Len = 100;
void swap_ch(char *a, char *b)
{
char temp[Len];
strcpy(temp,a);
strcpy(a,b);
strcpy(b,temp);
}
int main()
{
char a[Len],b[Len],c[Len];
cin >> a >> b >> c;
if(strcmp(a,b)>0)
swap_ch(a,b);
if(strcmp(a,c)>0)
swap_ch(a,c);
if(strcmp(b,c)>0)
swap_ch(b,c);
cout << a << endl << b << endl << c;
return 0;
}

代码2:
#include <iostream>
#include <string>
/*下面这个是用C++里的类string做的
string类型的对象可以直接用>,<,=来
根据字典序判断字符串大小。这里涉及
到重载的概念,楼主可以上网了解一下*/
using namespace std;
void swap_str(string x, string y)
{
string temp;
temp=x;
x=y;
y=temp;
}
int main()
{
string a,b,c;
cin >> a >> b >> c;
if(a>b) swap_str(a,b);
if(a>c) swap_str(a,c);
if(b>c) swap_str(b,c);
cout << a << endl << b << endl << c;
return 0;
}
望楼主采纳
温馨提示:内容为网友见解,仅供参考
第1个回答  2011-06-10
c++里面字符可以直接用比较数值的方法比较的。如:
i='a';j='b'
那么i-j<0这个表达式是成立的。
第2个回答  2011-06-10
#include <iostream>
#include <string>
using namespace std;
void output1(char* ch); //按字母由小到大
void output2(char* ch); //按字母由大到小
int main()
{

char* ch1="you are very pretty!";
cout<<ch1<<endl;
output1(ch1);
output2(ch1);
}
void output1(char* ch)
{
string text=ch;
int length=text.length();
for(int i=0;i<length;i++)
{
for(int j=i+1;j<length;j++)
{
char str;
if(text[i]>text[j])
{
str=text[i];
text[i]=text[j];
text[j]=str;
}
}
}
cout<<"由小到大排列为: ";
for(int m=0;m<length;m++)
{
if(isalpha(text[m]))
{
cout<<text[m];
}
}
cout<<endl;
}
void output2(char* ch)
{
string text=ch;
int length=text.length();
for(int i=0;i<length;i++)
{
for(int j=i+1;j<length;j++)
{
char str;
if(text[i]<text[j])
{
str=text[i];
text[i]=text[j];
text[j]=str;
}
}
}
cout<<"由大到小排列为: ";
for(int m=0;m<length;m++)
{
if(isalpha(text[m]))
{
cout<<text[m];
}
}
cout<<endl;
}
第3个回答  2011-06-11
怕你没学了排序,就用最简单的if,else分支语句做的!!自己仔细看看!!

#include<iostream>
using namespace std;
#include<cstring>
char *ch[4];
void Com(char a[],char b[],char c[])
{
if(strcmp(a,b)>0)
{
if(strcmp(b,c)>0)

else
{
if(strcmp(a,c)>0)

else

}
}
else
{
if(strcmp(a,c)>0)

else
{
if(strcmp(b,c)>0)

else

}
}
}
int main()
{
char a[20],b[20],c[20];
int i;
while(cin>>a>>b>>c)
{
Com(a,b,c);
for(i=0;i<=2;i++)
cout<<ch[i]<<" ";
cout<<endl;
}
return 0;
}

C++输出三个字符窜要求按字母由小到大或由大到小输出
include <iostream> include <cstring> \/*包含这个头文件是因为要用到函数strcmp(const char*, const char*),它是用来按字典序比较两个字符数组大小的。若前者大,返回值为正;若后者大,返回值为负;若相等,返回值为0.可以理解为前者减后者做差,这样好记.strcpy(const char*, const char*),将...

在C++环境下如何输入3个字符串,按由大到小的顺序输出
for(i=0;i<3;i++)cout<<a[i]<<endl;}

C语言问题比较三个字符串的大小,由小到大输出。
C++里面,系统只要发现字符串,这是字符串就是以只针针的形式被识别的,就已经是一个地址了!!!举例if("banana"=="banana")cout<<""equal"<<endl;else cout<<"unequal"<<endl; 结果输出的是:unequal 因为系统识别两个内容相同的字符串时是识别的地址,if中的两个字符存储的位置不用,地...

C++求救 输入三个字符后,按各字符的ASCII码从小到大的顺序输出这三个...
void swap(char &a,char &b){ static char t;if(a>b){ t=a;a=b;b=t;} } int main(){ char a,b,c;cin>>a>>b>>c;swap(a,b);swap(a,c);swap(b,c);cout<<a<<" "<<b<<" "<<c<<endl;return 0;}

C++ 输入3个字符串,按由小到大的顺序输出 错误请教
错在输出分支不满足完备性上面了。这段三个字符串比较排序代码使用了插入排序的算法逻辑,即:选择一个(剩余)元素string1,往有序列表(string2 < string3)中执行插入操作,插入位置无非有(1)string2之前;(2)string2与string3之间;(3)string2之后;最终构成三个字符串的有序序列。有n个元素的插入...

用c++输入3个单词并按从小到大的顺序输出
using namespace std;void main(){ char s[3][30],t[30];\/\/您的这里错了,因为char t只能容纳一个字符,它不能作为两个字符串值交换的中介。就相当于你想把一瓶醋和一瓶酱油互换瓶子盛装,你当然要凭借一个空的容器,这个空的容器要大的能足够盛醋或盛酱油,但在实际操作中,这个容器一般...

C语言,在C++环境下运行“输入3个字符串,按由小到大的顺序输出”用指针的...
printf("按由小到大的顺序输出为:\\n");printf("%s\\n%s\\n%s\\n",s1,s2,s3);} 注意我把string.h去掉了,所以这里的strcpy,strcmp都是我自己写的,而不是库函数了。输入字符串的时候,是以空白字符为结束输入的。回车,空格都可以。不用特意输入‘\\0';另外楼主的程序可以实现,我测试过了。...

输入三个字符串,找出最大和最小,并且输出最大和最小的字符串,用C++语 ...
int main(void){ char a[100],b[100],c[100],*p1=a,*p2=b,*p3=c,*p;gets(a);gets(b);gets(c);if(strcmp(p1,p2)>0){p=p1;p1=p2;p2=p;} if(strcmp(p1,p3)>0){p=p1;p1=p3;p3=p;} if(strcmp(p2,p3)>0){p=p2;p2=p3;p3=p;} printf("最小的字符串是%s\\n",p1...

C++编程,要求:输入3个字符串,按由小到大的顺序输出。
楼上回答的不对,这个程序传递的并不是指针,他传递的字符串引用 include<iostream>#include<string>using namespace std;void swap(string &str1,string &str2);\/\/\/函数声明int main(){ string str1=" ",str2=" ",str3=" "; char *p1=&str1[0],*p2=&str2[0],*p3=...

C++,急ASCII码排序 Description 输入三个字符后,按各字符的ASCII码从小...
你的好麻烦啊,先两个比较,c1=a>b?a:b;找到了a,b中大的记为c1 c2=c1>c?c1:c;找到最大的记为c2 再就是,其他的自己完成.

相似回答
大家正在搜