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");
}
總而言之,這個程序的問題還是有的,還要好好修改一下