当前位置:首页 » 编程语言 » 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()等,都可以帮助我们快速方便的对字符串操作。