这一篇博客主要说一些关于控制流的知识,也和上一篇一样,属于复习内容
//if-else语句
#include<stdio.h>
int main()
{
int i;
fscanf(stdin,"%d",&i);
if(i>10)
puts("the number is larger than 10\n");
else if(i<100 && i>=10)
puts("the number is between 10 and 100\n");
else
puts("the number is out of range");
return 0;
}
//if else语句,先判断括号内语句,再执行对应内容
//switch语句
#include<stdio.h>
int main()
{
char i;
fscanf(stdin,"%c",&i);
switch(i){
case 'A':
puts("the number is A\n");
break;
case 'B':
puts("the number is B\n");
break;
default:
puts("nothing happens\n");
break;
}
return 0;
}
//for循环
#include<stdio.h>
int main()
{
int i;
for(i=0;i<10;i++)
printf("%d ",i);
puts("\n");
return 0;
}
/*for(表达式1,表达式2,表达式3)
{
函数体
}
等价于
while(表达式2)//while先计算表达式2中是否为真,再运行函数体
{
函数体
表达式3
}
*/
//shell排序方法,用for循环
#include<stdio.h>
void shell(int s[], int n)
{
int gap,i,j,temp;
for(gap=n/2;gap>0;gap/=2)//gap初始距离为一般的数据长度
for(i=gap;i<n;i++)
for(j=i-gap;j>=0 && s[j]>s[j+gap];j=j-gap)
//对称的比较gap两边的数据大小,按照升序排列
{
temp=s[j];
s[j]=s[j+gap];
s[j+gap]=temp;
}
for(i=0;i<n;i++)
printf("%d ",s[i]);
puts("\n");
}
int main()
{
int s[]={3,5,2,7,1,10};
shell(s,6);
return 0;
}
//没有显示初始化的情况下,外部变量和静态变量被初始化为0,而自动变量与寄存器变量没有意义