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!='