A. c語言中從鍵盤輸入N個字元串,將字元串按從小到大的順序排列並輸出
1
輸入字元串;
2
對字元串進行排序;
3
輸出。
排序中需要注意:
1
用strcmp比較字元串;
2
用strcpy執行字元串的賦值。
代碼如下:
#define N 50
int main()
{
char s[N][100];
int i,j;
for(i = 0; i < N; i ++)
scanf("%s",s[i]);
for(i = 0; i < N-1; i ++)
{
for(j = i+1; j < N; j ++)
{
if(strcmp(s[i],s[j])>0)
{
char t[100];
strcpy(t,s[i]);
strcpy(s[i],s[j]);
strcpy(s[j],t);
}
}
}
for(i = 0; i < N; i ++)
puts(s[i]);
}
B. 關於C語言:輸入兩個字元,按字母表的順序輸出。如輸入ba,輸出ab。
voidmain()
{
charinput1,input2;
scanf("%c%c",&input1,&input2);
if(input1<input2)
{
printf("%c%c",input1,input2);
}
else{
printf("%c%c",input2,input1);
}
}
//輸入的時候需注意只取前2個字元
C. C語言編程題: 輸入10個字元串,將其從大到小排序後輸出。
#include<stdio.h>
void swap1(int *p,int n){
int temp;
for(int i=0;i<n-1;i++)
for(int j=i+1;j<n;j++)
if(p[i]>p[j]){
temp=p[i];
p[i]=p[j];
p[j]=temp;
}
}
void swap2(int *p,int n){
int temp;
for(int i=0;i<n-1;i++)
for(int j=i+1;j<n;j++)
if(p[i]<p[j]){
temp=p[i];
p[i]=p[j];
p[j]=temp;
}
}
int main(){
char n;int a[15];
while(~scanf("%c",&n)){
for(int i=0;i<10;i++){
scanf("%d",&a[i]);
}
getchar();
if(n=='A') swap1(a,10);
else swap2(a,10);
for(int i=0;i<10;i++){
if(i==0)printf("%d",a[i]);
else printf(" %d",a[i]);
}
printf(" ");
}
}
運行效果:
(3)c語言輸入字元排序輸出擴展閱讀:
printf函數使用注意事項
1、域寬
%d:按整型數據的實際長度輸出。
如果想輸出指定寬度可以指定域寬,%md-->m域寬,列印出來以後,在控制台上,顯示m位;
如果我們要列印的數的位數如果超過我們設定m則原樣輸出;
如果我們要列印的數的位數如果小於我們設定的位數,則補空白,具體如下:
如果m為正數,則左對齊(左側補空白);
如果m為負數,則右對齊(右側補空白)。
2、轉義字元
如果想輸出字元"%",則應該在「格式控制」字元串中用連續兩個%表示。
如:printf("%f%%",1.0/3);輸出結果:0.333333%。
D. C語言如何從鍵盤輸入任意3個數,按從小到大的順序輸出
代碼1.
//輸入3個數,要求按從小到大順序輸出
#include<stdio.h>
intmain()
{
inta,b,c,t;
printf("請輸入三個數:");
scanf("%d%d%d",&a,&b,&c);
if(a>b)
{
t=a;
a=b;
b=t;
}
if(a>c)
{
t=a;
a=c;
c=t;
}
if(b>c)
{
t=b;
b=c;
c=t;
}
printf("從小到大的順序是:%d%d%d ",a,b,c);
return0;
}
代碼2.
輸入3個字元串,按從小到大順序輸出。//先用程序對三個數進行從小到大排序,然後修改程序
#include<stdio.h>
#include<string.h>
intmain()
{voidswap(char*pt1,char*pt2);
chara[20],b[20],c[20];
char*p1,*p2,*p3;
printf("請輸入三個字元串:");
gets(a);
gets(b);
gets(c);
//或用scanf("%s,%s,%s",a,b,c);
p1=&a[0];p2=&b[0];p3=&c[0];//三個指針分別指向三個字元數組
if(strcmp(*p1,*p2)>0)swap(p1,p2);//if(strcmp(a,b)>0)swap(a,b);//比較兩個字元串的大小,為什麼用前一句的時候會出現警告呢
if(strcmp(a,c)>0)swap(a,c);//if(strcmp(*p1,*p3)>0)swap(*p1,*p3);
if(strcmp(b,c)>0)swap(b,c);//if(strcmp(*p2,*p3)>0)swap(*p2,*p3);
printf("由小到大排列:%s %s %s ",a,b,c);
return0;
}
voidswap(char*pt1,char*pt2)
{chart[20];
strcpy(t,pt1);
strcpy(pt1,pt2);
strcpy(pt2,t);
//t=*pt1;*pt1=*pt2;*pt2=t;
}
代碼3.
#include<stdio.h>
#include<string.h>
#defineSIZE3
#defineLEN50
intmain(void)
{
charstr[SIZE][LEN];
char(*pst)[LEN]=str;
chartemp[LEN];
inti,j;
printf("Pleaseenter3string. ");
for(i=0;i<SIZE;i++)
{
fgets(*(pst+i),LEN,stdin);
}
printf("Beforsort: ");
for(i=0;i<SIZE;i++)
{
fputs(*(pst+i),stdout);
}
for(i=0;i<SIZE-1;i++)
for(j=i+1;j<SIZE;j++)
{
if(strcmp(*(pst+i),*(pst+j))==1)
{
strcpy(temp,*(pst+i));
strcpy(*(pst+i),*(pst+j));
strcpy(*(pst+j),temp);
}
}
printf("Aftersort: ");
for(i=0;i<SIZE;i++)
{
fputs(*(pst+i),stdout);
}
}
E. 關於C語言:輸入兩個字元,按字母表的順序輸出。如輸入ba,輸出ab。
pre
t="code"
l="cpp">void
printf(" input2); , input1; else{
input1);main()
{
 , %c%c" input2;
printf("  , ; < input2); ,  , %c%c"char %c%c" input1;if input1, input2;
 , & scanf("{
}
;
& input2)
(input1
 
F. C語言,輸入一個字元串,逆序排列後輸出
可以參考下面的代碼:
#include "stdio.h"
main()
{
char strA[200];
char Temp;
int i=0,Length=0;
clrscr();
printf("請輸入一個字元串:");
gets(strA);
Temp=strA[0];
while(Temp!='