1. 用c语言编程序(输入五个国家的名字,比较,在按顺序输出)
#include "stdio.h"
main()
{
char a[5][15];
char *b[5],*p;
int i,j;
printf("输入五个国家名字\n");
for(i=0;i<5;i++)
{
scanf("%s",&a[i][0]);
b[i]=&a[i][0];
}
for(i=0;i<5;i++)
for(j=i+1;j<5;j++)
{
if(strcmp(b[i],b[j])>0)
{
p=b[i];
b[i]=b[j];
b[j]=p;
}
}
printf("输出五个国家的名字");
for(i=0;i<5;i++)
printf("%s\n",b[i]);
getch();
return 0;
}
2. c语言,输入五个国家的名字,按字母顺序(即按ASCII码从小到大的顺序)排列输出。
typedef struct
{
char cou[15];
}C;
C raw[5];
C *p[5];
void main()
{
/*定义结构数组*/
/*定义指针指向结构体变量*/
C* q;
int i,j;
printf("input countries:\n");
/*循环输入国家名并存储在结构数组中*/
for(i=0;i<5;i++)
{
scanf("%s",&raw[i].cou);
p[i]=&raw[i];
/* strupr(p[i].cou);*/
}
/*冒泡排序将国家名称排序*/
for(i=0;i<4;i++)
for(j=0;j<4-i;j++)
{
/*strcmp函数比较相邻两个国家名的Ascii码*/
if(strcmp(p[j]->cou,p[j+1]->cou)>0)
{
q=p[j];
p[j]=p[j+1];
p[j+1]=q;
}
}
printf("\n");
/*循环输出*/
for(i=0;i<5;i++)
printf("%s ",p[i].->cou);
getch();
}
想用指针的话利用指针数组排序就行了,
另外上面的比较的是p却对q进行了交换
字符串拷贝只能用strcpy了
3. C语言 输入若干国家的英文名字,按字母顺序从大到小排列,然后输出
用冒泡排序
用 “啊科斯马”(怎么拼忘记了)值来排
排好放数组里
然后循环输出
4. C语言题目:编写程序,输入 10 个国名,按字母字典序排序后输出。 要求:采用函数编程。
#include<stdio.h>
#include<string.h>
#defineM3
#defineN100
voidinput(charstr[][N],intm)
{
inti;
for(i=0;i<m;i++)
gets(str[i]);
}
voidCountrySort(charstr[][N],intm)
{
chart[M][N];inta,k,i,j=0;
for(k=m-1;k>0;k--)
for(i=0;i<k;i++)
{
a=str[i][j]-str[i+1][j];
if(a>0)
{
strcpy(t[i],str[i]);
strcpy(str[i],str[i+1]);
strcpy(str[i+1],t[i]);
j=0;
}
if(a==0)
{
i--;j++;
}
}
}
voidprint(charstr[][N],intm)
{
inti;
for(i=0;i<m;i++)
puts(str[i]);
}
intmain()
{
inti;
charstr[M][N];
for(i=0;i<M;i++)scanf("%s",str[i]);
CountrySort(str,M);
printf(" ");
print(str,M);
return0;
}
5. 对输入的国家名字按字母顺序排序(C语言)
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main()
{
int n,i,j;
char (*p)[10],a[10];
printf("请输入你要输入的国家个数:");
scanf("%d",&n);
p=(char (*)[10])calloc(n,sizeof(char *[10]));
printf("请输入国家的名字\n");
for (i=0;i<n;i++)
scanf("%s",*(p+i));
for(i=0;i<n;i++)
for(j=i+1;j<n;j++)
if (strcmp(*(p+i),*(p+j))>0)
{
strcpy(a,*(p+i));
strcpy(*(p+i),*(p+j));
strcpy(*(p+j),a);
}
printf("排序后为\n");
for(i=0;i<n;i++)
printf("%s\n",*(p+i));
return 0;
}
6. c语言 我要把5个国家的名字存进5个数组中 该怎么做 求解答
char country[5][]={"国家1","国家2","国家3","国家4","国家5"};
字符串countr[0]代表 国家1,可以直接输出到终端
7. 用C语言 任意输入五个国家名字再以首字母为序输出怎么写
1 用二维字符数组存储每个名字,每行一个;
2 输入五个字符串,即五个国家名字;
3 排序,注意用strcmp比较,用strcpy赋值交换;
4 输出结果。
代码如下:
intmain()
{
chars[5][100],t[100];
inti,j;
for(i=0;i<5;i++)
scanf("%s",s[i]);
for(i=0;i<4;i++)
for(j=i+1;j<5;j++)
{
if(strcmp(s[i],s[j])>0)
{
strcpy(t,s[i]);
strcpy(s[i],s[j]);
strcpy(s[j],t);
}
}
for(i=0;i<5;i++)
printf("%s",s[i]);
}
8. c语言请输入三个国家的名字
printf("请输入三个国家的名字:\n");可以这样。
9. 用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("排序后: ");
for(i=0;i<5;i++)
puts(ss<i>);
return 0;
}
/*
China America Australia France Germany
*/
运行效果:
(9)用C语言程序输入3个国家的名字扩展阅读:
include用法:
#include命令预处理命令的一种,预处理命令可以将别的源代码内容插入到所指定的位置;可以标识出只有在特定条件下才会被编译的某一段程序代码;可以定义类似标识符功能的宏,在编译时,预处理器会用别的文本取代该宏。
插入头文件的内容
#include命令告诉预处理器将指定头文件的内容插入到预处理器命令的相应位置。有两种方式可以指定插入头文件:
1、#include<文件名>
2、#include"文件名"
如果需要包含标准库头文件或者实现版本所提供的头文件,应该使用第一种格式。如下例所示:
#include<math.h>//一些数学函数的原型,以及相关的类型和宏
如果需要包含针对程序所开发的源文件,则应该使用第二种格式。
采用#include命令所插入的文件,通常文件扩展名是.h,文件包括函数原型、宏定义和类型定义。只要使用#include命令,这些定义就可被任何源文件使用。
10. C语言问题:输入五个国家的名称按字母顺序排列输出。
main()
{
char st[20],cs[5][20]; //cs存放五个名字
int i,j,p; //定义p就是浪费,没用,可以删掉
printf("input country's name:\n"); //提示输入
for(i=0;i<5;i++) //循环读5个字符串(国家名字)放到cs数组里
gets(cs[i]);
printf("\n"); //输出个换行符,为了输出格式好看一点?
//以下就是一个冒泡排序
for(i=0;i<5;i++)
{ p=i;strcpy(st,cs[i]); //这里两句全都可以删除,一点用没有
for(j=i+1;j<5;j++)
//下面这一段可以只用一个if(strcmp(cs[j],cs[i])<0)
//{}内的代码用第二个if中的三个strcpy
//作用就是判断i和j处的字符串是不是按字母顺序排的
//如果不是就将它们两个交换一下位置
if(strcmp(cs[j],st)<0) {p=j;strcpy(st,cs[j]);}
if(p!=i)
{
strcpy(st,cs[i]);
strcpy(cs[i],cs[p]);
strcpy(cs[p],st);
}
//输出排序后的字符串?那就不应该加在这里
//可以在下面这个括号之后另起一个循环,输出
puts(cs[i]);}printf("\n");
}
总而言之,这个程序的问题还是有的,还要好好修改一下