C语言小白求解!
题目描述
请编写C程序,输入5个不同的且为字符格式的学生编号,将其先由大到小排序,再将最大的学生编号和最小的学生编号互换位置,然后输出此时5位学生的编号。
输入
输入5位学生的编号(只含数字字符、英文字母或空格)。
输出
输出按题意要求排序后的5位学生的编号。
样例输入
good1
tiger100
horse2011
mouse 022
21century
样例输出
21century
mouse 022
horse2011
good1
tiger100
提示
用gets()函数输入字符串。
#include<stdio.h>
#include<stdio.h>
int main()
{
char *temp,*p[5];
char str[5][50];
int i,j;
for(i=0;i<5;i++)
{
gets(str[i]);
p[i] = str[i];
}
for(i=0;i<5;i++)
{
for(j=0;j<4-i;j++)
{
if((*p[j])<(*p[j+1]))
{
temp = p[j];
p[j] = p[j+1];
p[j+1] = temp;
}
}
}
printf("%s\n",p[4]);
for(i=1;i<=3;i++)
printf("%s\n",p[i]);
printf("%s\n",p[0]);
return 0;
}
程序哪里错了?为什么无法运行?