do while语句是先执行一次do语句中的内容,接着判断while语句中的内容不成立时就不再执行do语句了,否则循环执行do语句,最后的while小括号后边要加分号
#include <stdio.h>
main(){
int x,max;
printf("enter -1 to end :\n");
do{
printf("enter x1:");
scanf("%d",&x);
}while(x<0&&x!=-1);
max=x;
while(x!=-1){
printf("enter x2:");
scanf("%d",&x);
if(x>0&&x>max){
max=x;
}
}
if(max!=-1)
printf("max=%d\n",max);
}
#include <stdio.h>
main(){
int n=10;
while(n>7){
n--;
printf("%d\n",n);
}
}//n=10输出9,n=9输出8,n=8输出7,n=7不能输出
/*以下是输出内容
9
8
7
*/
#include <stdio.h>
main(){
int x=3;
do{
printf("%3d",x-=2);
}while(!(--x));//第一次输出x=1,然后--x=0是假,(!(--x))就是真,条件成立继续输出-2
}
/*以下是输出结构
1 -2
*/
1.break
(1)只能在循环体内和switch语句体内使用break;
(2)当break出现在循环体中的switch语句体内时,起作用只是跳出该switch语句体,并不能终止循环体的执行。若想强行终止循环体的执行,可以在循环体中,但并不在switch语句中设置break语句,满足某种条件则跳出本层循环体。
2.continue
continue语句的作用是跳过本次循环体中余下尚未执行的语句,立即进行下一次的循环条件判定,可以理解为仅结束本次循环。
注意:continue语句并没有使整个循环终止。
#include <stdio.h>
main(){
int x,i;
for(i=1;i<=100;i++){
x=i;
if(++x%2==0)
if(++x%3==0)
if(++x%7==0)
printf("%d",x);
}
printf("\n");//回车在for循环外边,最后输出
}
/*输出结构
2870
*/
#include <stdio.h>
main(){
int x=2;
while(x--);//注意此处的分号代表一个空语句,while后边没有分号。
printf("%d\n",x);
}
/*输出结构
-1
*/
#include <stdio.h>
main(){
double s=1.0;
int k;
for(k=1;k<=5;k++)
s=s+1.0/(k*(k+1));
printf("%f",s);
}
/*输出结构
1.833333
*/
#include <stdio.h>
main(){
double s=0.0,d=1.0;
int k=0;
do{
s=s+d;
k++;
d=1.0/(k*(k+1));
}while(k<=5);
printf("%f\n",s);
}
/*输出结构
1.833333
*/
#include <stdio.h>
main(){
float x,amax,amin;
scanf("%f",&x);
amax=x;
amin=x;
while(x>=0){
if(x>amax)
amax=x;
if(x<amin)
amin=x;
scanf("%f",&x);
}
printf("\namax=%f\namin=%f\n",amax,amin);
}
/*输出结构
amax=657.000000
amin=12.000000
输入-1结束程序
*/
//方法1计算(1 +5+9+13+17 +.... +101)-(3+7 +11 +15 +....+99)=51
#include<stdio.h>
void main()
{
int i,j,sum1=0,sum2=0,sum;
for(i=1;i<=101;i+=4)
sum1 += i;
for(j=3;j<=99;j+=4)
sum2 +=j;
sum=sum1-sum2;
printf("1-3+5-7+....-99+101=%d\n",sum);
}
//方法2:符号交替变换计算1-3+5-7...-99+101的值
#include<stdio.h>
void main()
{
int i,sum=0,flag=1;
for(i=1;i<=101;i+=2)
{
sum =sum+i*flag; //控制符号交替变换
flag=-flag;
}
printf("%d\n",sum);
}
/*运行结果:
1-3+5-7+....-99+101=51
*/
/* 编写程序,输入从公元1000年到2000年所有的闰年的年号,每输入3个年号换一行,判断公元年是否为闰年的条件
1、公元年数如果能被4整除,而且不能被100整除
2、公元年数能被100整除也是闰年
*/
#include <stdio.h>
main(){
int i,k=0;
for(i=1000;i<=2000;i++){
if(i%4==0&&i%100!=0||i%100==0){
printf("%5d",i);
k++;//计数,输出了几个年号了
if(k%3==0){
printf("\n");
}
}
}
}
/*输出结构
1000 1004 1008
1012 1016 1020
1024 1028 1032
1036 1040 1044
...
*/