switch(表达式){
case 整型常量表达式:语句序列
case 整型常量表达式:语句序列
default:语句序列
}
while(表达式)
语句
for(表达式1; 表达式2; 表达式3)
语句
表达式1与表达式3通常是赋值表达式或函数调用;表达式2是关系表达式。这3个组成部分任意部分都可省略,但分号必须保留。如果在for语句中省略表达式1与表达式3,它就退化成了while循环语句。如再省略表达式2,则认为其值永远为真,即成了死循环。
for(;;){
}

1 #include <stdio.h> 2 #include <ctype.h> 3 int atoi1(char s[]); 4 int atoi2(char s[]); 5 6 main(){ 7 printf("%d\n", atoi2("+111")); //111 8 printf("%d\n", atoi2("-111")); //-111 9 printf("%d\n", atoi2(" -111")); //-111 10 11 printf("%d\n", atoi1("999")); //999 12 printf("%d\n", atoi1("-999")); //999 13 return 0; 14 } 15 16 /***将s转换为整数 版本1***/ 17 int atoi1(char s[]){ 18 int i; 19 int n = 0; 20 for(i=0; s[i]!='\0'; i++){ 21 if((s[i] >= '0') && (s[i] <= '9')) 22 n = n * 10 + s[i] - '0'; 23 } 24 return n; 25 } 26 27 /***将s转换为整数 版本1的升级版***/ 28 int atoi2(char s[]){ 29 int i, n, sign; 30 //跳过空白符 31 for(i=0; isspace(s[i]); i++) 32 ; 33 sign = (s[i] == '-') ? -1 : 1; 34 //跳过符号 35 if(s[i] == '+' || s[i] == '-') 36 i++; 37 for(n=0; isdigit(s[i]); i++){ 38 n = 10 * n + (s[i] - '0'); 39 } 40 return sign * n; 41 }
//shell排序算法

1 #include <stdio.h> 2 void shellsort(int v[], int n); 3 4 main(){ 5 int arr[] = {1,4,5,10,6,99,7,8,2,9,0,1}; 6 shellsort(arr,12); 7 8 int k; 9 for(k=0; k<12; k++){ 10 printf("%d,", arr[k]); //0,1,1,2,4,5,6,7,8,9,10,99 11 } 12 return 0; 13 } 14 15 /*****shellsort,按递增顺序对v[0]...v[n-1]排序*****/ 16 void shellsort(int v[], int n){ 17 int gap, i, j, temp; 18 for(gap=n/2; gap>0; gap/=2){ 19 for(i=gap; i<n; i++){ 20 for(j=i-gap; j>=0&&v[j]>v[j+gap]; j-=gap){ 21 temp = v[j]; 22 v[j] = v[j+gap]; 23 v[j+gap] = temp; 24 } 25 } 26 } 27 }
//反转字符串,不产生新串

1 #include <stdio.h> 2 #include <string.h> 3 void reverse(char s[]); 4 5 main(){ 6 char s[] = "abcdefg"; 7 reverse(s); 8 printf("%s", s); //gfedcba 9 return 0; 10 } 11 /*******反转字符串*********/ 12 void reverse(char s[]){ 13 int c,i,l; 14 for(i=0, l=strlen(s)-1; i<l; i++,l--){ 15 c = s[i]; 16 s[i] = s[l]; 17 s[l] = c; 18 } 19 }
do
语句
while(表达式);
1 #include <stdio.h> 2 main(){ 3 int i = 10; 4 do{ 5 printf("%i\n",i); 6 }while((--i) > 0); //注意后面的分号 7 return 0; 8 }