输入5个字符串,按升序排序后输出。要求,用input函数输入字符串,用output函数输出
输入5个字符串,按升序排序后输出。要求,用input函数输入字符串,用output函数输出字符串,且用sort函数对5个字符串进行排序。...
输入5个字符串,按升序排序后输出。要求,用input函数输入字符串,用output函数输出字符串,且用sort函数对5个字符串进行排序。
展开
3个回答
展开全部
#include<stdio.h>
#include<string.h>
char *p[5]; /*定义全剧变量指针*/
void input()
{
int i;
printf("请输入5个字符串:");
for(i=0;i<5;i++)
gets(p[i]); /*输入5个字符串*/
}
void sort()
{
int i,j;
char a[80];
for(i=0;i<4;i++)
{
for(j=i;j<4;j++)
if(strcmp(p[i],p[j+1])>0) /*如果前面的比后面的大那就交换值 ,就是让前面的依次比后面小*/
{
strcpy(a,p[i]); /*用复制函数交换两个字符串的值*/
strcpy(p[i],p[j+1]);
strcpy(p[j+1],a);
}
}
}
void output()
{
int i;
for(i=0;i<5;i++)
{
puts(p[i]); /*输出排好序的字符串*/
}
}
int main()
{
int i,j;
char a[5][80];
for(i=0;i<5;i++)
p[i]=a[i]; /*把数组的地址赋值跟指针*/
input();
sort();
output();
}
如果还有什么不懂得地方可以Q我527663232.。。其实是很简单的问题
#include<string.h>
char *p[5]; /*定义全剧变量指针*/
void input()
{
int i;
printf("请输入5个字符串:");
for(i=0;i<5;i++)
gets(p[i]); /*输入5个字符串*/
}
void sort()
{
int i,j;
char a[80];
for(i=0;i<4;i++)
{
for(j=i;j<4;j++)
if(strcmp(p[i],p[j+1])>0) /*如果前面的比后面的大那就交换值 ,就是让前面的依次比后面小*/
{
strcpy(a,p[i]); /*用复制函数交换两个字符串的值*/
strcpy(p[i],p[j+1]);
strcpy(p[j+1],a);
}
}
}
void output()
{
int i;
for(i=0;i<5;i++)
{
puts(p[i]); /*输出排好序的字符串*/
}
}
int main()
{
int i,j;
char a[5][80];
for(i=0;i<5;i++)
p[i]=a[i]; /*把数组的地址赋值跟指针*/
input();
sort();
output();
}
如果还有什么不懂得地方可以Q我527663232.。。其实是很简单的问题
展开全部
#include <stdio.h>
#include <string.h>
#define N 10
void chuli(char *p)
{
int i,j;
char s[N];
for(i=0;i<9;i++)
for(j=i+1;j<10;j++)
if(strcmp(p+i*10,p+j*10)>0)
{
strcpy(s,p+i*10);
strcpy(p+i*10,p+j*10);
strcpy(p+j*10,s);
}
}
void input(char *p)
{
int i=0;
printf("分别输入一个等长的字符串序列(长度<=10):\n");
for(i=0;i<10;i++)
gets(p+i);
}
void output(char *p)
{
int i=0;
printf("排序后(小—大)的字符串序列为:\n");
for(i=0;i<10;i++)
puts(p+i);
}
void main()
{
char string[5][N],*p;
p=*string;
input(p);
chuli(p);
output(p);
}
跪求
分能给我吗?
谢谢
#include <string.h>
#define N 10
void chuli(char *p)
{
int i,j;
char s[N];
for(i=0;i<9;i++)
for(j=i+1;j<10;j++)
if(strcmp(p+i*10,p+j*10)>0)
{
strcpy(s,p+i*10);
strcpy(p+i*10,p+j*10);
strcpy(p+j*10,s);
}
}
void input(char *p)
{
int i=0;
printf("分别输入一个等长的字符串序列(长度<=10):\n");
for(i=0;i<10;i++)
gets(p+i);
}
void output(char *p)
{
int i=0;
printf("排序后(小—大)的字符串序列为:\n");
for(i=0;i<10;i++)
puts(p+i);
}
void main()
{
char string[5][N],*p;
p=*string;
input(p);
chuli(p);
output(p);
}
跪求
分能给我吗?
谢谢
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
做法:
#include <stdio.h>
#include <string.h>
#define N 10
void chuli(char *p)
{
int i,j;
char s[N];
for(i=0;i<9;i++)
for(j=i+1;j<10;j++)
if(strcmp(p+i*10,p+j*10)>0)
{
strcpy(s,p+i*10);
strcpy(p+i*10,p+j*10);
strcpy(p+j*10,s);
}
}
void input(char *p)
{
int i=0;
printf("分别输入一个等长的字符串序列(长度<=10):\n");
for(i=0;i<10;i++)
gets(p+i);
}
void output(char *p)
{
int i=0;
printf("排序后(小—大)的字符串序列为:\n");
for(i=0;i<10;i++)
puts(p+i);
}
void main()
{
char string[5][N],*p;
p=*string;
input(p);
chuli(p);
output(p);
}
#include <stdio.h>
#include <string.h>
#define N 10
void chuli(char *p)
{
int i,j;
char s[N];
for(i=0;i<9;i++)
for(j=i+1;j<10;j++)
if(strcmp(p+i*10,p+j*10)>0)
{
strcpy(s,p+i*10);
strcpy(p+i*10,p+j*10);
strcpy(p+j*10,s);
}
}
void input(char *p)
{
int i=0;
printf("分别输入一个等长的字符串序列(长度<=10):\n");
for(i=0;i<10;i++)
gets(p+i);
}
void output(char *p)
{
int i=0;
printf("排序后(小—大)的字符串序列为:\n");
for(i=0;i<10;i++)
puts(p+i);
}
void main()
{
char string[5][N],*p;
p=*string;
input(p);
chuli(p);
output(p);
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询