一道C语言的基础题 求大神帮助~
根据要求编写程序P815.C的指定部分:程序P815.C(单击此处下载),请根据程序中的要求完善程序——注意,除指定位置外,不能对程序中已有部分作任何修改或重新编写一个程...
根据要求编写程序P815.C的指定部分: 程序P815.C(单击此处下载),请根据程序中的要求完善程序——注意,除指定位置外,不能对程序中已有部分作任何修改或重新编写一个程序,否则作0分处理。 程序的功能是:从键盘上输入5个字符串(约定:每个字符串中字符数≤80字节),对其进行升序排序并输出。 程序的运行效果应类似地如图1所示,图1中的 hello My Friend are you ready? help me! 是从键盘输入的内容。
已编写部分代码如下:
#include<stdio.h>#include<string.h>
#define MAX_LINE 5#define MAX_LINE_LEN 81
/* 本部分代码功能建议:函数原型声明 *//* User Code Begin(Limit: lines<=1, lineLen<=50, 考生可在本行后添加代码、最多行、每行长<=50字符) */
/* User Code End(考生添加代码结束。注意:空行和单独为一行的{与}均不计行数、行长不计行首tab缩进) */
int main(void) { int i; char *pstr[MAX_LINE], str[MAX_LINE][MAX_LINE_LEN];
for (i=0; i<MAX_LINE; i++) { pstr[i] = str[i]; }
printf("Input 5 strings:\n"); for (i=0; i<MAX_LINE; i++) { gets(pstr[i]); }
sortP_Str(pstr); printf("---------------------------\n"); for (i=0; i<MAX_LINE; i++) { printf("%s\n", pstr[i]); }
return 0;}
/* User Code Begin(考生在此后完成自定义函数的设计,行数不限) */ 展开
已编写部分代码如下:
#include<stdio.h>#include<string.h>
#define MAX_LINE 5#define MAX_LINE_LEN 81
/* 本部分代码功能建议:函数原型声明 *//* User Code Begin(Limit: lines<=1, lineLen<=50, 考生可在本行后添加代码、最多行、每行长<=50字符) */
/* User Code End(考生添加代码结束。注意:空行和单独为一行的{与}均不计行数、行长不计行首tab缩进) */
int main(void) { int i; char *pstr[MAX_LINE], str[MAX_LINE][MAX_LINE_LEN];
for (i=0; i<MAX_LINE; i++) { pstr[i] = str[i]; }
printf("Input 5 strings:\n"); for (i=0; i<MAX_LINE; i++) { gets(pstr[i]); }
sortP_Str(pstr); printf("---------------------------\n"); for (i=0; i<MAX_LINE; i++) { printf("%s\n", pstr[i]); }
return 0;}
/* User Code Begin(考生在此后完成自定义函数的设计,行数不限) */ 展开
4个回答
展开全部
#include<stdio.h>
#include<string.h>
#define MAX_LINE 5
#define MAX_LINE_LEN 81
/* 本部分代码功能建议:函数原型声明 */
/* User Code Begin(Limit: lines<=1, lineLen<=50, 考生可在本行后添加代码、最多行、每行长<=50字符) */
void sortP_Str(char *pstr[]);
/* User Code End(考生添加代码结束。注意:空行和单独为一行的{与}均不计行数、行长不计行首tab缩进) */
int main(void)
{
int i;
char *pstr[MAX_LINE], str[MAX_LINE][MAX_LINE_LEN];
for (i=0; i<MAX_LINE; i++)
{
pstr[i] = str[i];
}
printf("Input 5 strings:\n");
for (i=0; i<MAX_LINE; i++)
{
gets(pstr[i]);
}
sortP_Str(pstr);
printf("---------------------------\n");
for (i=0; i<MAX_LINE; i++)
{
printf("%s\n", pstr[i]);
}
return 0;
}
/* User Code Begin(考生在此后完成自定义函数的设计,行数不限) */
void sortP_Str(char *pstr[])
{
int i,j;
char tmp[MAX_LINE_LEN];
int minid;
for(i=0;i<MAX_LINE-1;i++)//选择法排序
{
minid=i;
for(j=i+1;j<MAX_LINE;j++)
{
if(strcmp(pstr[j],pstr[minid])<0)
{
minid=j;
}
}
if(minid!=i)
{
strcpy(tmp,pstr[i]);
strcpy(pstr[i],pstr[minid]);
strcpy(pstr[minid],tmp);
}
}
}
这样子吗?
展开全部
/*
Input 5 strings:
hello
My
Friend
are you ready?
help me!
---------------------------
Friend
My
are you ready?
hello
help me!
Press any key to continue
*/
void sortP_Str(char *pstr[MAX_LINE_LEN]) {
int i,j,k;
char tmp[MAX_LINE_LEN];
for(i = 0; i < MAX_LINE - 1; ++i) {
k = i;
for(j = i + 1; j < MAX_LINE; ++j)
if(strcmp(pstr[k],pstr[j]) > 0)
k = j;
if(k != i) {
strcpy(tmp,pstr[k]);
strcpy(pstr[k],pstr[i]);
strcpy(pstr[i],tmp);
}
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
void sortP_Str(char *pstr[])
{
int i=0,j=0;
char strTemp[MAX_LINE_LEN];
for(i=0;i<MAX_LINE-1;i++)
for(j=i;j<MAX_LINE-1;j++)
{
if(strcmp(pstr[j],pstr[j+1])>0)
{
strcpy(strTemp,pstr[j]);
strcpy(pstr[j],pstr[j+1]);
strcpy(pstr[j+1],strTemp);
}
}
}
{
int i=0,j=0;
char strTemp[MAX_LINE_LEN];
for(i=0;i<MAX_LINE-1;i++)
for(j=i;j<MAX_LINE-1;j++)
{
if(strcmp(pstr[j],pstr[j+1])>0)
{
strcpy(strTemp,pstr[j]);
strcpy(pstr[j],pstr[j+1]);
strcpy(pstr[j+1],strTemp);
}
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询