对输入的正文按字典顺序取最大或最小的行输出,输出的结果由一个函数的参数来决定,为1,则为最大行输出,
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了对输入的正文按字典顺序取最大或最小的行输出,输出的结果由一个函数的参数来决定,为1,则为最大行输出,相关的知识,希望对你有一定的参考价值。
否则为最小行输出
简单点的c,我是初学者,才学到函数这章。。。
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个字符串进行排序(按升序),输出排序后的字符串。然后从键盘再次输入一字符
编写程序'任何三个整数,按照从大到小的排列顺序输出或输出最大最小值