顺序,选择,循环
选择:if else , swith( ) { case常量表达式:
case常量:
Break;
Default:
Break;}
循环:while , for , if-goto慎用,goto无条件跳转转到某位置,不能跨函数。
Loop:
循环体
If( )
goto Loop;
辅助控制:continue 跳出本次循环;break跳出所有循环
死循环 while(1);for(;;);
例题
#define principal 100.0;
static void invest(void)
{
int year=0;
float asum = principal;
float bsum = principal;
float aintrest ,bintrest;
while(asum >= bsum)
{
year++;
aintrest = 100.0 * 0.1;
bintrest = bsum *0.05;
printf("%f,%f\n",aintrest,bintrest);
asum += aintrest;
bsum += bintrest;
printf("%f,%f\n",asum,bsum);
}
printf("this year is %d\n",year);
}
输出27
#define MAX 100
static void number(void)
{
int i = 0;
int a[MAX]= {0};
int evenn, oddn;
float evenave , oddave ;
evenn = oddn =0;//别忘了初始化
evenave = oddave = 0.0;
printf("please input number:\n");
for(i = 0;i< 100;i++) //此处有更好的方法do while
{
scanf("%d",a+i);//import 数组自增的写法;
if(a[i]%2 ==0)
{
oddn++;
oddave+= a[i];
printf("oddn=%d\n",oddn);
printf("oddave=%f\n",oddave);
}
else
{
evenn++;
printf("even=%d\n",evenn);
evenave+=a[i];
printf("evenave=%f\n",evenave);
}
if(a[i]==0)
{
break;
}
}
oddave = oddave / oddn;
evenave = evenave / evenn;
printf("odd number:%d,odd average:%f,\n even number:%d, even average:%f\n",oddn,oddave,evenn,evenave);
}
int main(void)
{
// invest();
number();
exit(0);
}
[tom@CentOS7 cycle]$ make test
cc test.c -o test
[tom@CentOS7 cycle]$ ./test
please input number:
25
even=1
evenave=25.000000
26
oddn=1
oddave=26.000000
28
oddn=2
oddave=54.000000
24
oddn=3
oddave=78.000000
26
oddn=4
oddave=104.000000
81
even=2
evenave=106.000000
83
even=3
evenave=189.000000
92
oddn=5
oddave=196.000000
0
oddn=6
oddave=196.000000
odd number:6,odd average:32.666668,
even number:3, even average:63.000000