逻辑结构
程序设计基本思路
输入 → 计算处理 → 输出
基本结构
| #include <stdio.h> // 头文件
int main() // 主函数
{
printf("Hello, world!"); // 调用 printf 函数
return 0; // 返回0,主函数不能返回其他值
}
|
顺序结构
选择结构
if
1
2
3
4
5
6
7
8
9
10
11
12
13 | if(条件表达式)
{
语句1;
语句2;
}
else if(条件表达式)
{
语句3;
}
else
{
语句4;
}
|
switch
1
2
3
4
5
6
7
8
9
10
11
12
13 | switch(表达式)
{
case 常量表达式1:
语句1;
break;
case 常量表达式2:
语句2;
语句3;
break;
...
default: //可省略
语句n;
}
|
循环结构
for
| for ( init; condition; increment )
{
statement(s);
}
|
while
| while ( condition )
{
statement(s);
}
|
do-while
| do
{
statement(s); // 语句至少会被执行一次
}while( condition );
|
嵌套循环
就是在循环里面循环。
| for(init; condition; increment)
{
while(condition)
{
statement(s);
}
}
|
死循环
表示不会终止的循环。
break&continue;
- break表示跳出循环;
- continue表示结束本次循环,直接进行下一次循环,只能用于循环结构。
例:判断n是否为素数
1
2
3
4
5
6
7
8
9
10
11
12
13
14 | #include<stdio.h>
int main()
{
int n,flg=0;
scanf("%d",&n);
for(int i=2;i<n;i++)
{
if(n%i!=0)continue;//不是因子继续循环
flg=1;break;//跳出循环
}
if(flg==1)printf("NO\n");
else printf("YES\n");
return 0;
}
|
算法竞赛中的输入输出
处理到文件结束
例如,给出整数a和b的值,输出a+b,输入包含多组数据,处理到文件结束。
T组样例输入输出
给出整数a和b的值,输出a+b,输入包含T组数据。输入的第一行为T,之后的T行分别是a和b的值。
1
2
3
4
5
6
7
8
9
10
11
12 | #include<stdio.h>
int main()
{
int a,b,t;
scanf("%d",&t);
while(t--)
{
scanf("%d%d",&a,&b);
printf("%d\n",a+b);
}
return 0;
}
|