对输入的正文按字典顺序取最大或最小的行输出,输出的结果由一个函数的参数来决定,为1,则为最大行输出,

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了对输入的正文按字典顺序取最大或最小的行输出,输出的结果由一个函数的参数来决定,为1,则为最大行输出,相关的知识,希望对你有一定的参考价值。

否则为最小行输出
简单点的c,我是初学者,才学到函数这章。。。

如果没有理解错的话,楼主的意思是输入一堆字符串,按字典序排序,参数是1则按从大到小输出,否则按从小到大输出,是这个意思吗?另外就是只输出最大或最小的字典顺序的那一个字符串?我两个都给出吧:
1、按字典序输出所有的串,由参数决定
#include<stdio.h>
#include<string.h>
#define MAX 100

void sort(char str[][MAX+1],int n,int len)

char temp[MAX+1];
int i,j,k;

for(i=0;i<len;i++) //选择排序法进行按从大到小排序

k=i;
for(j=i+1;j<len;j++)

if( strcmp(str[j],str[k]) >= 1 )
k=j;

if( k!= i )

strcpy(temp,str[i]);
strcpy(str[i],str[k]);
strcpy(str[k],temp);


if( n == 1 ) //如是要求从大到小输出,则从后面开始向前面输出

for(i=len-1;i>=0;i--)

puts(str[i]);


else //否则从前面到后面输出,因为排序时是从小到大排序的

for(i=0;i<len;i++)

puts(str[i]);




int main()

char str[MAX+1][MAX+1]; //一共可以存储100个字符串,每个串长最长为100
int i,n;

printf("n:");
scanf("%d",&n);

gets(str[0]); //用来吃掉输入后面的回车
for(i=0;i<n;i++)

gets(str[i]);


sort(str,1,n);
printf("-------------\n");
sort(str,0,n);


2、如果是只输出最在或是最小的,则函数代码如下:
void sort(char str[][MAX+1],int n,int len)

char temp[MAX+1];
int i,j,k;

for(i=0;i<len;i++)

k=i;
for(j=i+1;j<len;j++)

if( strcmp(str[j],str[k]) >= 1 )
k=j;

if( k!= i )

strcpy(temp,str[i]);
strcpy(str[i],str[k]);
strcpy(str[k],temp);


if( n == 1 ) //只是输出最大的那一行或最小那一行就行了

puts(str[len-1]);

else

puts(str[0]);

参考技术A 对输入的正文按字典顺序取最大或最小的行输出,这是要实现什么功能?举个简单的例子看看吧 参考技术B 学的是VHDL

以上是关于对输入的正文按字典顺序取最大或最小的行输出,输出的结果由一个函数的参数来决定,为1,则为最大行输出,的主要内容,如果未能解决你的问题,请参考以下文章

内容:输入n个字符串,对这n个字符串进行排序(按升序),输出排序后的字符串。然后从键盘再次输入一字符

编写程序'任何三个整数,按照从大到小的排列顺序输出或输出最大最小值

c语言:编写一个程序找出一组单词中的“最小“和“最大“的单词(单词在字典中的先后顺序,字典中先出现

方格取数问题 最小割

LuoguP2774 方格取数问题(最小割)

Python中如何以dict的key排序输出?