用C语言编程实现国家名称按序输出,要求键盘输入五个国家的名字,按字母顺序排列打印输出。

如题所述

#include<stdio.h>

#include<string.h>

void fun(char*_s[]){

char*p;

for(int i=0;i<5;i++){//对指针数组进行冒泡排序

for(int j=1;j<5-i;j++){

if(strcmp(_s[j-1],_s[j])>0){

p=_s[j];

_s[j]=_s[j-1];

_s[j-1]=p;

}

}

}

}

int main(){

int i=0;

char st[5][20];//接收字符串的二维数组

char*ss[5];//字符型的指针数组

for(i=0;i<5;i++){

scanf("%s",st<i>);

ss<i>=st<i>;

}

fun(ss);

printf("排序后:\n");

for(i=0;i&lt;5;i++)

puts(ss<i>);

return 0;

}

/*

China America Australia France Germany

*/

运行效果:

扩展资料:

include用法:

#include命令预处理命令的一种,预处理命令可以将别的源代码内容插入到所指定的位置;可以标识出只有在特定条件下才会被编译的某一段程序代码;可以定义类似标识符功能的宏,在编译时,预处理器会用别的文本取代该宏。

插入头文件的内容

#include命令告诉预处理器将指定头文件的内容插入到预处理器命令的相应位置。有两种方式可以指定插入头文件:

1、#include&lt;文件名&gt;

2、#include"文件名"

如果需要包含标准库头文件或者实现版本所提供的头文件,应该使用第一种格式。如下例所示:

#include&lt;math.h&gt;//一些数学函数的原型,以及相关的类型和宏

如果需要包含针对程序所开发的源文件,则应该使用第二种格式。

采用#include命令所插入的文件,通常文件扩展名是.h,文件包括函数原型、宏定义和类型定义。只要使用#include命令,这些定义就可被任何源文件使用。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2017-01-06
#include<stdio.h>
#include<string.h>
int main()
{
    char *country[5];
    char s[10];
    printf("请输入5个国家的名称:\n");
    for(int i=0;i<5;i++)
    {
        scanf("%s",s);
        country[i]=s;
    }
    for(int j=0;j<4;j++)
        for(int k=j+1;k<5;k++)
        {
            if(strcmp(country[i],country[j])>0)
            {
                char *t;
                t=country[i];
                country[i]=country[j];
                country[j]=t;
            }
        }
    for(int i=0;i<5;i++)
        printf("%s\n",country[i]);
    return 0;
}

第2个回答  2017-01-06
#include <stdio.h>
#include <sring.h>
int main()
{
    char *a[5],*p;
    char s[5][100];
    int i,j;
    for(i = 0; i < 5; i ++)
    {
        gets(s[i]);
        p = s[i];
        for(j = i-1; j>=0;j--)
            if(strcmp(a[j], p) <= 0) break;
            else a[j+1] = a[j];
        a[j+1] = p;
    }
    for(i = 0; i < 5; i ++)
        puts(a[i]);
    return 0;
}

本回答被提问者和网友采纳
第3个回答  2017-01-06
就是接收字符串、并排序、然后输出

~~~~~~追问

这回答然并卵

第4个回答  2018-03-14

思路如下:1.接收5个国名、2.用strcmp函数排序,这里使用冒泡排序法、3.输出排序后的国名序列。代码如下

#include<stdio.h>
#include<string.h>
main()
{
char st[20],cs[5][20];
int i,j;
printf("Input country's name:\n");
for(i=0;i<5;i++)
gets(cs[i]);
printf("\n");
for(i=1;i<5;i++)   //冒泡排序
for(j=0;j<5-i;j++)    //每一趟把最高的升顶
{
if(strcmp(cs[j],cs[j+1])>0)
{
strcpy(st,cs[j]);
strcpy(cs[j],cs[j+1]);
strcpy(cs[j+1],st);
}
}
for(i=0;i<5;i++)
puts(cs[i]);
return 0;
 }

注解:字符串比较函数,一般形式为strcmp(字符串1,字符串2)。
(1)字符串1=字符串2,返回0
(2)字符串1>字符串2,返回一个正整数
(3)字符串1<字符串2,返回一个负整数。
字符串复制函数,一般形式为strcmp(字符串1,字符串2),把字符串2给字符串1。

相似回答