循环

语法

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的范围,首先进行判定
  • 从最小数开始判断
    函数
posted @ 2020-10-17 21:51  w4  阅读(157)  评论(0编辑  收藏  举报