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("\n"); 

运行效果:

扩展资料:

printf函数使用注意事项

1、域宽

%d:按整型数据的实际长度输出。

如果想输出指定宽度可以指定域宽,%md--&gt;m域宽,打印出来以后,在控制台上,显示m位;

如果我们要打印的数的位数如果超过我们设定m则原样输出;

如果我们要打印的数的位数如果小于我们设定的位数,则补空白,具体如下:

如果m为正数,则左对齐(左侧补空白);

如果m为负数,则右对齐(右侧补空白)。

2、转义字符

如果想输出字符"%",则应该在“格式控制”字符串中用连续两个%表示。

如:printf("%f%%",1.0/3);输出结果:0.333333%。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2020-11-12
#include<stdio.h>
#include<string.h>
void main()
{
int n,,a,b;
char ch[100];
char fu[10][100];
printf("请输入十个字符串\n");
for(n=0;n<10;n++)
scanf("%s",fu[n]);
for(a=0;a<9;a++)
for(b=1;b<9-a;b++)
{

if(strcmp(fu[a],fu[b+a])>0)
{

strcpy(ch, fu[a]);
strcpy(fu[a], fu[b+a]) ;
strcpy(fu[b+a], ch) ;

}
}
for(n=0;n<10;n++)
printf("%s\n",fu[n]);

}
第2个回答  推荐于2016-11-13
#include <string.h>
#include <stdio.h>
int main()
{
char a[10][20];
for(int i=0;i<10;i++)
scanf("%s",a[i]);
for(int i=0;i<9;i++)
for(int j=0;j<9-i;j++)
if(strcmp(a[j],a[j+1])>0)
{
char t[10];
strcpy(t,a[j]);
strcpy(a[j],a[j+1]);
strcpy(a[j+1],t);
}
for(int i=0;i<10;i++)
printf("%s\n",a[i]);
return 0;
}

望采纳追问

太赞了!perfect!不过,请问int main 和void main 在这里会不会出现问题

追答

如果用int main ,后面就要renturn 0;如果用void main 就不用,加油

本回答被提问者采纳
相似回答