第1个回答 2020-05-14
这是一个for语句,根据for语句的形式:for(语句1;语句2;语句3){函数体;}
的执行顺序是:语句1,判断语句2是否成立(非0为真,0为假)函数体,最后是语句3,(£)再进行判断语句2,是否成立,在执行函数体,语句3
,在执行(£)知道条件不满足语句2,跳出循环;如果,语句2是非逻辑表达式,即非判断语句时,循环体内,必有满足条件的跳出语句
break,否则为死循环;
这里的
for(k=1;k+1;k++)
可以这样解释:执行循环for()语句时,初始条件
K=1;之后执行
K+1
(k=2,非0,条件为真继续执行)之后执行函数体for下面花括号{}的内容,之后在执行
K++(K自增1)
所以,明白for()语句的执行顺序就可以明白了,明白了吗?
第2个回答 2008-09-02
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define COUNTRIES 5
#define NAME_MAX_LEN 511
typedef struct {
char name[NAME_MAX_LEN+1];
}CountryName;
int compare(const void*a, const void*b) {
if(strcmp(((CountryName*)a)->name,((CountryName*)b)->name)>=0)
return 1;
return 0;
}
int main(void) {
CountryName countries[COUNTRIES] = {0};
int i;
for(i=0;i<COUNTRIES;i++) {
scanf("%s", countries[i].name);
}
qsort(countries, COUNTRIES, sizeof(CountryName),compare);
for (i=0;i<COUNTRIES;i++) {
printf("%s\n", countries[i].name);
}
}