酒店电脑租赁:C语言刚学不会

来源:百度文库 编辑:高考问答 时间:2024/04/27 13:48:58
void main()
{
char st[20],cs[5][20];
int i,j,p;
printf("input country's name:\n");
for(i=0;i<5;i++)
gets(cs[i]);
printf("\n");
for(i=0;i<5;i++)
{ p=i;strcpy(st,cs[i]);
for(j=i+1;j<5;j++)
if(strcmp(cs[j],st)<0) {p=j;strcpy(st,cs[j]);}
if(p!=i)
{
strcpy(st,cs[i]);
strcpy(cs[i],cs[p]);
strcpy(cs[p],st);
}
puts(cs[i]);}printf("\n");
}
for(i=0;i<5;i++)
{ p=i;strcpy(st,cs[i]);
for(j=i+1;j<5;j++)
if(strcmp(cs[j],st)<0) { p=j;strcpy(st,cs[j]);}
if(p!=i)
{
strcpy(st,cs[i]);
strcpy(cs[i],cs[p]);
strcpy(cs[p],st);
}
st是??????????????作什么的???
具体的作用请说下 谢谢

输入5个国家名字。
用gets(cs[i]); 读入,存放在cs[0]; cs[1]; 。。cs[4];中。
st是工作单元。

用途一,临时存放一个国家名字,用来同别的国家名字比较字符值的大小(即按字母排序)。strcmp(cs[j],st)<0 就是比较字符值的大小。

用途二,临时存放,用于两个国家名字换序:
strcpy(st,cs[i]); strcpy(cs[i],cs[p]); strcpy(cs[p],st);
[把i单元国名,放入st,把p单元国名考贝到i单元,把st里的国名考贝到i单元,完成了交换]。

排序完成,打印结果。

开始定义了一个字符数组st[20]
st就是该数组的内存地址!

st是数组名上面不是写着st[20],是指st是个一维数组,有20个元素。分别是st[0]、st[1]、st[2]........st[19]。这20个数。

ST 就是指针啊!

st[20]这是一个二维数组

st是二维数组的首地址

st是一个数组,一个用来存放一组相怀类型的存储空间!!!