C语言菜鸟的困惑

来源:百度知道 编辑:UC知道 时间:2024/05/26 04:47:20
#include<stdio.h>
#include<string.h>
void main()
{
void sort(char *name[],int n);
void print(char *name[],int n);
char *name[]={"Follow me","BASIC","GreatWall","FORTRAN","computer design"};
int n=5;
sort(name,n);
print(name,n);
}
void sort(char *name,int n)
{
int j,i,k;
char *temp;
for(i=0;i<n-1;i++)
{
k=i;
for(j=i+1;j<n;j++)
{
if(strcmp(name[k],name[j])>0)
{
*temp=name[k];
name[k]=name[j];
name[j]=*temp
}
}
}
}
void print(char *name,int n)
{
int i;
for(i=0;i<n;i++)
printf("%s\n",*(name+i));
}

哪错了?这是错误提示:
--------------------Configuration: 练完后删 - Win32 Debug--------------------
Compiling...
输入学生序号,输出学生成绩.cpp
E:\闻\学习&#

你的Sort函数有问题:改过如下:
void sort(char *name,int n)
{
int j,i,k;
char *temp;
for(i=0;i<n-1;i++)
{
k=i;
for(j=i+1;j<n;j++)
{
if(name[k]>name[j]) //这里直接可以比较的
{
*temp=name[k];
name[k]=name[j];
name[j]=*temp; //少了一个分号
}
}
}
}

25行少了分号;
strcmp好像只能比较字符串

void sort(char *name,int n)
少了[]

kan kan