當前位置:首頁 » 編程語言 » c語言輸入字元排序輸出
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言輸入字元排序輸出

發布時間: 2022-09-19 03:37:06

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--&gt;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!=''){

Length++;

Temp=strA[i++];

}

Length--;

for(i=0;i<Length/2;i++){

Temp=strA[i];

strA[i]=strA[Length-i-1];

strA[Length-i-1]=Temp;

}

puts(strA);

getch();

}

(6)c語言輸入字元排序輸出擴展閱讀:

C語言參考函數:

atof(將字元串轉換成浮點型數)

atoi(將字元串轉換成整型數)

atol(將字元串轉換成長整型數)

strtod(將字元串轉換成浮點數)

strtol(將字元串轉換成長整型數)

strtoul(將字元串轉換成無符號長整型數)

toascii(將整型數轉換成合法的ASCII 碼字元)

注意事項:

字元串在存儲上類似字元數組,所以它每一位的單個元素都是可以提取的,如s=「abcdefghij」,則s[1]=「a」,s[10]="j",而字元串的零位正是它的長度,如s[0]=10(※上述功能Ansistring沒有。),這可以給我們提供很多方便,如高精度運算時每一位都可以轉化為數字存入數組。

G. C語言 對輸入的n個字元串進行排序,並輸出(排序過程中會改變字元串真正的存放位置)

#include<stdio.h>
#include<string.h>
void main ()
{
char s[10][100],t[100];//用二維數組最大輸入10個字元串,T為裝字元串的數組
int n=0,i,j,k;
scanf("%d",&n);//輸入次數
for(i=0;i<n+1;i++){//輸入n次字元串//是i<n+1,不是i<n,也可以改為i<=n
gets(s[i]);
}
for(i=0;i<n+1;i++)//掃描5次字元串組
{
for(j=i+1;j<n+1;j++)
{
if(strcmp(s[i],s[j])>0)//從小到大排列
{
strcpy(t,s[i]);//數組賦值用strcpy不能用=這個方式
strcpy(s[i],s[j]);
strcpy(s[j],t);
}
}
}
for(i=0;i<n+1;i++){//是i<n+1,不是i<n,也可以改為i<=n
puts(s[i]);
}
}

H. C語言,輸入5個字元串,按由小到大的順序輸出。非常急,求指導!

#define _CRT_SECURE_NO_WARNINGS 1

#include<stdio.h>

#include<stdlib.h>

#include<string.h>

void sort(char **p)

{

char **q, **s, *t;

for (q = p; q < p + 4; q++)

{

for (s = q + 1; s < p + 5; s++)

{

if (strcmp(*q, *s) > 0)

{

t = *q;

*q = *s;

*s = t;

}

}

}

}

int main()

{

char *a[5], b[5][99], **p;

int i;

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

a[i] = b[i];

printf("請依次輸入五個字元串: ");

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

scanf("%s", a[i]);

p = a;

sort(p);

printf("排序後輸出為: ");

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

{

printf("%s ", a[i]);

}

system("pause");

return 0;

}

運行效果:

(8)c語言輸入字元排序輸出擴展閱讀:

scanf函數用法:

scanf("輸入控制符",輸入參數);

功能:將從鍵盤輸入的字元轉化為「輸入控制符」所規定格式的數據,然後存入以輸入參數的值為地址的變數中。

用scanf()函數以%s格式讀入的數據不能含有空白符時,所有空白符都被當做數據結束的標志。所以題中函數輸出的值只有空格前面的部分。

如果想要輸出包括空格在內的所有數據,可以使用gets()函數讀入數據。gets()函數的功能是讀取字元串,並存放在指定的字元數組中,遇到換行符或文件結束標志時結束讀入。換行符不作為讀取串的內容,讀取的換行符被轉換為字元串結束標志''。

I. c語言中從鍵盤輸入N個字元串,將字元串按從小到大的順序排列並輸出

代碼如下:

#define N 10 int main(){char str[N][100]; int i,j; for(i = 0; i < N; i ++) scanf("%s",str[i]); for(i = 0; i < N-1; i ++) { for(j = i+1; j < N; j ++){ if(strcmp(str[i],str[j])>0) { char temp[100]; strcpy(temp,str[i]); strcpy(str[i],str[j]); strcpy(str[j],temp);} } } for(i = 0; i < N; i ++) puts(str[i]);}。

運行代碼:

(9)c語言輸入字元排序輸出擴展閱讀

在C語言編程中,常常需要對字元串比較和排序,經常遇到對字元串整體的控制等操作,strcmp 比較str1和str2的大小,而其它的c函數strlen(),字元串拷貝函數strcpy()/strncpy(),字元串比較函數 strcmp(),字元串連接函數strcat()/strncat()等,都可以幫助我們快速方便的對字元串操作。