一道c语言程序题: 输入5个字符串,按字典顺序将其重新排列输出。用字符串指针实现。
#includestdio.h
#includestring.h
void main()
{
void sort(char (*p)[20]);
char a[5][20];//五行20列
int i;
printf(“请输入5个字符串:\n”);
for(i=0;i5;i++)//这里输入五个字符串
gets(a[i]);
sort(a);//调用函数进行排列
}
void sort(char (*p)[20])
{
char a[20];
int i,j;
for(i=0;i4;i++)//这里把每一行看做一个元素五个要进行4次比较
for(j=0;j20;j++)//这里是上下相邻的两行之间对应元素进行比较
{
if(p[i][j]p[i+1][j])//遇到上行大于交换上下两行
{
strcpy(a,p[i]);
strcpy(p[i],p[i+1]);
strcpy(p[i+1],a);
}
break;
}
printf(“五个串按从小到大排列如下:\n”);
for(i=0;i5;i++)
puts(p[i]);
printf(“\n”);
}
c语言 输入10个单词,按字典顺序输出 不要复制不对的过来啊
#include “stdio.h”
#include “string.h”
int main()
{
char str[10][30]={0};
char tem[30]={0};
int i,j;
printf(“请输入10个单词:”);
for(i=0;i10;i++)//输入
scanf(“%s”,str[i]);
for(i=0;i9;i++)//排序
for(j=i+1;j10;j++)
if(strcmp(str[i],str[j])0)
{
strcpy(tem,str[i]);
strcpy(str[i],str[j]);
strcpy(str[j],tem);
}
printf(“这10个单词按照字典排序输出为:\n”);
for(i=0;i10;i++)// 输出
{
printf(“%s\n”,str[i]);
}
}
C语言编程题:输入N个英文单词,建立字符串数组,按字典顺序输出这些英文单词,要求用指针实现。
#include<stdio.h>
#include<string.h>
#defineN5
voidswap(char*p1,char*p2){
chartemp[100];
strcpy(temp,p1);
strcpy(p1,p2);
strcpy(p2,temp);
}
intmain(){
inti,j;
charstr1[N][100],*str[N];
for(i=0;i<N;i++){
scanf("%s",*(str1+i));
}
for(i=0;i<N;i++){
str[i]=*(str1+i);
}
for(i=0;i<N;i++){
for(j=i+1;j<N;j++){
if(strcmp(str[i],str[j])>0){swap(str[i],str[j]);}
}
}
for(i=0;i<N;i++){
printf("%s",str[i]);
}
printf("\n");
return0;
}
扩展资料:
printf用法:
printf()函数的调用格式为:printf("<格式化字符串>",<参量表>)。
其中格式化字符串包括两部分内容:一部分是正常字符,这些字符将按原样输出;另一部分是格式化规定字符,以"%"开始,后跟一个或几个规定字符,用来确定输出内容格式。
参量表是需要输出的一系列参数,其个数必须与格式化字符串所说明的输出参数个数一样多,各参数之间用","分开,且顺序一一对应,否则将会出现意想不到的错误。
比如:
inta=1234;
printf("a=%d\n",a);
输出结果为a=1234。
printf的格式控制的完整格式:
%-0m.nl或h格式字符
下面对组成格式说明的各项加以说明:
①%:表示格式说明的起始符号,不可缺少。
②-:有-表示左对齐输出,如省略表示右对齐输出。
③0:有0表示指定空位填0,如省略表示指定空位不填。
④m.n:m指域宽,即对应的输出项在输出设备上所占的字符数。N指精度。用于说明输出的实型数的小数位数。为指定n时,隐含的精度为n=6位。
⑤l或h:l对整型指long型,对实型指double型。h用于将整型的格式字符修正为short型。
C语言程序题 从键盘接收5个字符串,然后按字典顺序排序后输出 程序如下,帮帮改下吧
已经修改完成:
#includestdio.h
#includestring.h
main()
{ char * str[5], strl[5][80]; //定义字符指针数组,用于指向多个字符串
char *temp;
int i, j;
for (i = 0; i 5; i++)
{ gets(strl[i]); //从键盘上接收多个字符串
str[i] = strl[i]; //让指针数组中的字符串指针指向输入的串
}
for (i = 0; i 4; i++)
for (j = i + 1; j 5; j++)
{ if (strcmp(str[i], str[j]) 0)
{ temp = str[i];
str[i] = str[j];
str[j] = temp;
}
}
for (i = 0; i 5; i++)
printf(“\n%s\n”, str[i]);
}