输入n个字符串,用任意算法对其进行排序并按从小到大顺序输出

用c语言编程,程序伪码和完整程序都要,谢谢。急求!

#include<stdio.h>

#include<string.h>

int main ()

{

 char s[100][50],t[50];

 int n,i,j,k;

 scanf("%d\n",&n);

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

   gets(s[i]);

 for(i=0;i<n-1;i++)

 {

  k=i;

  for(j=i+1;j<n;j++)

    if(strcmp(s[j],s[k])<0)k=j;

  strcpy(t,s[i]); strcpy(s[i],s[k]); strcpy(s[k],t);

 }

 printf("======\n");

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

   puts(s[i]);

 return 0;

}

伪代码:

1。输入n

2。输入n个字符串到s数组

3。i=0

4。扫描第i个以后的所有字符串,找到最小字符串的序号

5。将第i个字符串与找到的最小字符串交换,然后i加1。

6。如i<n,转4。

7。输出n个字符串。

温馨提示:内容为网友见解,仅供参考
无其他回答

输入n个字符串,用任意算法对其进行排序并按从小到大顺序输出
for(i=0;i<n;i++) puts(s[i]); return 0; } 伪代码: 1。输入n 2。输入n个字符串到s数组 3。i=0 4。扫描第i个以后的所有字符串,找到最小字符串的序号 5。将第i个字符串与找到的最小字符串交换,然后i加1。 6。如i<n,转4。 7。输出n个字符串。 已赞过 已踩过< 你对这个回答的评价是...

C语言练习题:输入n个字符串,将它们按字典顺序输出。(请用数组的指针和...
char *b){ char temp=*a; *a = *b; *b = temp;}int nextperm(char a[], int n) \/\/ 字典序排列(从升序到降序排列(也可从降序到升序))基于ASCII码准则{ int i,j,k=-1,l; for(i=0;i<n-1

C语言程序:将若干字符串按字母顺序(由小到大)输出
两个程序代码都可以,教材中的代码相比较效率要高,因为教材中的算法每次遇到字符串小的只是单纯 对k赋值一次,而你的是每次都要交换数值(指针),假设最终交换了2次,对赋值而言教材算法运行2+1次,你的是3*2次

给定N个不同的整数,要求对这N个整数按如下规则排序并输出。
按照从小到大的顺序对N个不同的整数进行排序,可以使用各种排序算法来实现。具体实现时,可以根据实际情况选择合适的排序算法,对整数数组进行排序后输出。解释如下:对于这个问题,我们的目标是对给定的N个不同的整数进行排序。排序的基本思想是将这些整数按照从小到大的顺序重新排列。为了实现这一目标,我们...

...一个正整数N,再输入N个整数,按从小到大的顺序输出。
{ int a[100],i,j,t,n; printf("Input N:\\n"); scanf("%d",&n); printf("请再输入%d个数据:",n); for(i=0;i<n;i++) scanf("%d",&a[i]); printf("\\n"); for(j=0;j<n-1;j++)\/\/冒泡排序进行从小到大排列 for(i=0;i<n-1-j;i++) if(a[i]>a[i+1]) {t=a[i];...

给出n个数,你要将这n个数从小到大排序输出
冒泡法 define NUM n\/*n为数据个数*\/ void main()int a[NUM],i,j,t;scanf("%d",&a[i]);\/*输入数据,用tab键隔开*\/ for(i=0;i<NUM;i++)procedure sort(l,r: longint);var i,j,x,y: longint;begin i:=l; j:=r; x:=a[(l+r) div 2];repeat while a[i]<x do ...

C语言编程题目
判断它是否为回文字符串(即正着读和倒着读都一样),并输出结果。6. 编写程序,从键盘输入整数n,打印出从1到n的所有素数(素数是只能被1和本身整除的数,如2、3、5、7、11等)。7. 编写程序,从键盘输入一组数据(1~100之间的整数),将它们存入数组中,并按从小到大的顺序输出。8....

设计一个算法,将任意输入的3个数按从小到大的顺序输出。
int main(){ int a[3];int * p,i,j,t;printf("please input three numbers:\\n");for(i=0;i<3;i++)scanf("%d",&a[i]);for(j=0;j<2;j++){ for(i=0;i<2-j;i++){ if(a[i]>a[i+1]) {t=a[i];a[i]=a[i+1];a[i+1]=t;} } } for(p=a;p<(a+3);...

输入一个长度为n的字符串,打印出所有该字符串的排列组合。哪位大佬能...
比如:输入字符串"123456789asdfgfdsa9876543210",我们计算出其最大回文长度为14.具体的代码及其注释如下:int getLongestPalindrome(String A, int n) { \/\/边界条件判断 if (n < 2)return A.length();\/\/在输入字符串小于2的时候,也就是字符串本身就是回文,直接返回 \/\/maxLen表示最长回文串的...

求C++程序:任意从键盘输入10个整数,按从小到大的顺序排序,并输出结果...
为了实现C++程序,可以按照以下步骤来完成一个从键盘输入10个整数并按从小到大排序的功能:首先,创建一个结构体,名为`IntInfo`,包含整数值(数值域)、排名(排名域)和序号(序号域)。接着,定义一个`IntInfo`类型的数组`d`,用于存储输入的10个整数及其相关信息。定义两个自定义函数:`compare...

相似回答