switch(表达式){
case 整型常量表达式:语句序列
case 整型常量表达式:语句序列
default:语句序列
}
while(表达式)
语句
for(表达式1; 表达式2; 表达式3)
语句
表达式1与表达式3通常是赋值表达式或函数调用;表达式2是关系表达式。这3个组成部分任意部分都可省略,但分号必须保留。如果在for语句中省略表达式1与表达式3,它就退化成了while循环语句。如再省略表达式2,则认为其值永远为真,即成了死循环。
for(;;){
}
#include <stdio.h>
#include <ctype.h>
int atoi1(char s[]);
int atoi2(char s[]); main(){
printf("%d\n", atoi2("+111")); //
printf("%d\n", atoi2("-111")); //-111
printf("%d\n", atoi2(" -111")); //-111 printf("%d\n", atoi1("")); //
printf("%d\n", atoi1("-999")); //
return ;
} /***将s转换为整数 版本1***/
int atoi1(char s[]){
int i;
int n = ;
for(i=; s[i]!='\0'; i++){
if((s[i] >= '') && (s[i] <= ''))
n = n * + s[i] - '';
}
return n;
} /***将s转换为整数 版本1的升级版***/
int atoi2(char s[]){
int i, n, sign;
//跳过空白符
for(i=; isspace(s[i]); i++)
;
sign = (s[i] == '-') ? - : ;
//跳过符号
if(s[i] == '+' || s[i] == '-')
i++;
for(n=; isdigit(s[i]); i++){
n = * n + (s[i] - '');
}
return sign * n;
}
//shell排序算法
#include <stdio.h>
void shellsort(int v[], int n); main(){
int arr[] = {,,,,,,,,,,,};
shellsort(arr,); int k;
for(k=; k<; k++){
printf("%d,", arr[k]); //0,1,1,2,4,5,6,7,8,9,10,99
}
return ;
} /*****shellsort,按递增顺序对v[0]...v[n-1]排序*****/
void shellsort(int v[], int n){
int gap, i, j, temp;
for(gap=n/; gap>; gap/=){
for(i=gap; i<n; i++){
for(j=i-gap; j>=&&v[j]>v[j+gap]; j-=gap){
temp = v[j];
v[j] = v[j+gap];
v[j+gap] = temp;
}
}
}
}
//反转字符串,不产生新串
#include <stdio.h>
#include <string.h>
void reverse(char s[]); main(){
char s[] = "abcdefg";
reverse(s);
printf("%s", s); //gfedcba
return ;
}
/*******反转字符串*********/
void reverse(char s[]){
int c,i,l;
for(i=, l=strlen(s)-; i<l; i++,l--){
c = s[i];
s[i] = s[l];
s[l] = c;
}
}
do
语句
while(表达式);
#include <stdio.h>
main(){
int i = ;
do{
printf("%i\n",i);
}while((--i) > ); //注意后面的分号
return ;
}