c语言中字符串的排序,编译不通过?为什么

来源:百度知道 编辑:UC知道 时间:2024/07/02 20:57:49
#include <stdio.h>
#include <string.h>
#define M 10
main()
{ char r[M][50];
char temp[50];
int i,n,j;
scanf("%d",&n); //字符串个数
printf("Please input a country name:");
for(i=0;i<n;i++)
scanf("%s",r[i]);//输入字符串
for(i=0;i<n-1;i++)
for(j=i+1;j<n;j++)
if(strcmp(r[i],r[j]));//比较排序
{temp=r[i];//提示这里错误?为什么呀,请帮忙指出?
r[i]=r[j];
r[j]=temp;}
for(i=0;i<n;i++)
printf("%s ",r[i]);
}

temp是个数组标识,也可以把它看成一个不能对其进行赋值的指针

你应该使用strcpy(temp,r[i]);来代替你那句。

你可以单步执行的同时观察变量,然后就一切都明白了.

void output(char s[10][10])
{int i;
for(i=0;i<10;i++)
printf("%s ",*s++);
printf("\n");
}