聊天中ummmm什么意思:求c语言遍一个程序??

来源:百度文库 编辑:高考问答 时间:2024/05/02 04:24:37
1:任意输入5个字符串,调用函数按从大到小的顺序对字符串进行排序,在主函数中输出排序结果.
有没有简洁点的方案,分数好说.....

这个是用系统函数排的序
如果要用自己编的……
把qsort部分改改就行
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int cmp(const void* a,const void* b)
{
return strcmp(*(char**)a,*(char**)b);
}
void main()
{
int i;
char* szstr[5];
for(i=0;i<5;i++)
{
szstr[i]=(char*)malloc(80);
gets(szstr[i]);
}//输入部分
qsort(szstr,5,sizeof(szstr[0]),cmp);//排序
for(i=0;i<5;i++)
{
printf("%s\n",szstr[i]);
free(szstr[i]);
}//输出
}
你觉得在那里能简洁呢?
free尽管要不要效果一样,但是malloc了就free是一个好的编程习惯

你要求用c,所以不能用string类……,new和delete也不能用
我要是没用qsort那会更长了
如果是c++
#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
void main(void)
{
int i=0;
string str[5];
for(i=0;i<5;i++)
cin>>str[i];
sort(str,str+5);
for(i=0;i<5;i++)
cout<<str[i]<<endl;
}
这个当然简洁了