用冒泡法,简单选择法对n个字符串进行从小到大的排序

#include<string.h>
#include<stdio.h>
int menu();
int main()
{
int n, i, j;
printf("请输入字符串个数:");
scanf("%d",&n);
char a[100][100],t[100];
for(i=0;i<=n;i++)
{
gets(a[i]);
if(i==n)
{
break;
}
printf("请输入第%d个字符串:",i+1);
}
for(i=1;i<=n;i++)

for(j=0;j<100;j++)
if(a[i-1][j]>a[i][j])
{
strcpy(t,a[i-1]);
strcpy(a[i-1],a[i]);
strcpy(a[i],t);
}
printf("\n重新排序:\n");
for(i=1;i<=n;i++)
puts(a[i]);

}
程序已经遍的差不多,有点小问题,求大神指导!

#include<string.h>
#include<stdio.h>

int main()
{
    int n, i, j;
    char a[100][100],t[100];

    printf("请输入字符串个数:");
    scanf("%d%*c",&n);
    for(i=0;i<n;i++)
    {
        printf("请输入第%d个字符串:",i+1);
        gets(a[i]);
    }
    //冒泡法,比较相邻数据
    for(i=0;i<n-1;i++)
{
for(j=0;j<n-i-1;j++)
if( strcmp(a[j], a[j+1])>0 )
{
strcpy(t,a[j]);
strcpy(a[j],a[j+1]);
strcpy(a[j+1],t);
}
}
printf("\n重新排序:\n");
for(i=0;i<n;i++)
puts(a[i]);
return 0;
}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2020-12-26

经典排序之冒泡排序

相似回答