1.while 语句
① 显示1~10的平方
#include <stdio.h>
void main()
{
int i = 1;
while(i <= 10)
{
printf("%d * %d = %d\n",i, i, i*i);
i++;
}
}
② 求两个正整数的最大公因子
采用欧几里德算法,
(Ⅰ)输入两个正整数m和n
(Ⅱ)用m除以n,余数为r,如果r=0,则n是最大公因子,算法结束。否则为(Ⅲ);
(Ⅲ)把n赋给m,把r赋给n,转(Ⅱ)
#include <stdio.h>
void main()
{
int m, n, r;
printf("input two positive integer: "); //提示输入两个正整数
scanf("%d%d",&m, &n); //输入两个正整数
while(n != 0)
{
r = m % n; //求余数
m = n;
n = r;
}
printf("their greatest common divisor is %d\n",m); //输出结果
}
2.do_while语句 : do 循环体; while(表达式);
特点:先执行循环体,再判断表达式。
①while后边的括号()不能省
②while最后面的分号不能省
③while后面的表达式可以是任意类型的表达式,但一般是条件表达式或逻辑表达式
④表达式的值是循环的控制条件
⑤语句部分称为循环体,当需要执行多条语句是,应使用复合语句
#include <stdio.h>
void main()
{
int i = 1, sum;
do
{
sum += i;
i++;
}while(i <= 100);
printf("%d\n", sum);
} //5050
3.for语句:for(表达式1;表达式2;表达式3)循环体语句;
①for后面的括号不可以省
②表达式1:一般为赋值表达式,给控制变量赋初值(控制变量的初始化)
③表达式2:关系表达式或逻辑表达式,循环控制条件(循环的条件)
④表达式3:一般为赋值表达式,给控制变量增量或减量(循环控制变量的更新)
⑤表达式之间用分号分隔
⑥语句部分称为循环体,当需要执行多条语句是,应使用复合语句
#include <stdio.h>
void main()
{
int i, sum;
for(i = 1, sum; i <= 100; i++)
{
sum += i;
printf("sum=%d\n",sum);
}
}
注意事项:
4.循环嵌套
禁止:①从外层跳入内层 ②跳入同层的不同循环 ③向上循环
输出九九乘法表
#include <stdio.h>
void main()
{
int i, j;
for(i = 1; i < 10; i++)
printf("%4d", i);
printf("\n------\n");
for(i = 1; i < 10; i++)
for(j = 1; j < 10; j++)
printf((j == 9) ? "%4d\n" : "%4d", i * j);
}
5.break和continue语句
break语句:在循环语句和switch语句中,终止并跳出循环体或开关体。
①break不能用于循环语句和switch语句之外的任何其他语句之中。
②break只能终止并跳出最近一层的结构。
#include <stdio.h>
void main()
{
char c;
while(1)
{
c = getchar(); //读取一个字母
if(c >= 'a' && c <= 'A') //是小写字母
putchar(c - 'a' + 'A'); //输出其大写字母
else //不是小写字母
break; //退出循环
}
} howareyou/HOWAREYOU
continue语句:结束本次循环,跳过循环体中尚未执行的语句。
①仅用于循环语句中,不可以switch
②在嵌套循环的情况下,continue语句只对包含它的最内层的循环体语句起作用。
6.exit()函数:终止整个程序的执行,强制返回操作系统。
void exit(int status); 头文件<stdio.h>
参数status为int型,status的值传给调用进程(一般为操作系统)。按照惯例,当status的值为0或为宏常量EXIT_SUCCESS时,表示程序正常退出;当status的值为非0或为宏常量EXIT_SUCCESS时,表示程序出现某种错误后退出。
例子:输入三角形的边长。求面积。
#include <stdio.h>
#include <stdib.h>
#include <math.h>
void main()
{
float a, b, c;
float s, area;
printf("input the length of three edges of thianglle:");
scanf("%f%f%f",&a,&b,&c);
if(a <= 0 || b <= 0 || c <= 0)
{
printf("the length of three edges of thriangle is error !\n");
exit(-1);
}
s = (a + b + c) / 2;
s = s * (s - a) * (s - b) * (s - c);
if(s < 0)
{
printf("the length of three edges of thriangle is error !\n");
exit(-1);
}
area = (float)sqrt(s);
printf("area = %.2d\n", area);
}