循环
语法
for循环语句
c语言的基本形式为:
for(表达式1;表达式2;表达式3)
{
循环语句;
}
for循环的表达式1初始条件,表达式2是循环条件,表达式3是运行指令,中间用分号隔开。
先进行表达式1,再判断是否满足条件,满足就进入循环,循环结束后再进表达式3。
表达式1和表达式3可省略。
while循环语句
c语言的基本形式为:
while(表达式)
{
循环语句;
}
while训话的表达式是循环条件,先判断是否满足条件,若满足条件就进入循环。
do-while循环
do
{
循环语句;
}while(表达式);
do-while循环是先做一次循环,再判断条件。注意最后的分号
for(;表达式2;){}==while(表达式){}
例题与代码实现
for循环
一般用于有循环次数的循环。
- 例题一
#include<stdio.h>
int main()
{
int N,i;
double sum=0;
scanf("%d",&N);
for(i=1;i<=N;i++)
{
sum+=(1/i);
}
printf("sum = %.6f",sum);
return 0;
}
- 本题目需要注意的就是最后保留小数
- **累加时sum初始化为0,累乘时sum初始化为1。
- **对于这种题型,注意找到前后项的关系
普及内容
浮点数输出注意:%m.nf m代表占据几个字符,n代表保留几位小数。
while循环
一般用于没有循环次数,但有循环条件。
- 例题二
#include <stdio.h>
#include <math.h>
int main(){
int m,n;
scanf("%d %d",&m,&n);
int remainder;
remainder=m%n;
int x;
x=m*n;
if(remainder==0)
{
printf("%d %d",n,x/n);
}
else{
while(remainder!=0){
m=n;
n=remainder;
remainder=m%n;
}
printf("%d %d",n,x/n);
}
return 0;
}
do-while循环
循环必须先做一次
- 例题三
#include <stdio.h>
#include <math.h>
int main (){
double emp=0.0,sum=0.0,s=0.0;
int f=1,x=1;
scanf("%lf",&emp);
do{
s = f*(1.0/x);
sum+=s;
x+=3;
f*=-1;
}while( fabs(s) > emp); //fabs绝对值
printf("sum = %.6f",sum);
return 0;
}
疑难点
- 难题
#include<stdio.h>
int main()
{
int n;
scanf("%d",& n);
char ch = 'A';
if (n < 7) {
while (n != 0)
{
for (int i = 0; i < n; i++) {
printf("%c ", ch);
ch++;
}
printf("\n");
n--;
}
}
else
printf("输入不正确");
return 0;
}
牵扯一些字符串有关内容,以后说明,嵌套循环注意两层循环的关系
- 难题二
#include<stdio.h>
#include <math.h>
int main()
{
double N;
int a,t;
int i=0,s=0;
scanf("%lf",&N);
a=mypow(10,N-1);
while(N>=3&&N<=7)
{
while(mypow(10,N-1)<=a&&mypow(10,N)>=a)
{
t=a;//后面会改变值,先存一下a的值
while(i<N)
{
s=s+mypow(t%10,N);
t/=10;
i++;
}
i=0;
if(a==s)
{
printf("%d\n",a);
}
a++;
s=0;
}
break;
}
return 0;
}
- 注意N的范围,首先进行判定
- 从最小数开始判断
函数