循环控制结构,c入门

在这里插入图片描述
在这里插入图片描述在这里插入图片描述
在这里插入图片描述
此处i++&++i都没有关系
在这里插入图片描述
死循环…………
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
所以此处n++是不可以的,死循环了
在这里插入图片描述
在这里插入图片描述

如果表达式一开始的结果就为0(假),那么两者会有不同答案
在这里插入图片描述
一般表达式二为条件判断语句
在这里插入图片描述
在这里插入图片描述在这里插入图片描述
注意2)在这里插入图片描述
在这里插入图片描述
![在这里插入图片描述](https://img-blog.csdnimg.cn/20201213163540595.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly 9ibG9nLmNzZG4ubmV0L1JvaXNh,size_16,color_FFFFFF,t_70)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
for循环一次, 都要检测函数getchar()的结果是否为字符c,如果不是,则i去加c,
否则,则退出for循环。在键盘上连续输入,只要不输入回车,就将所有的内容都打印出来。
在这里插入图片描述
因为ascii码里边,1=49,2=50;c=90
在这里插入图片描述
在这里插入图片描述
就近原则!!
1.外层判断循环条件,满足进入外层循环体
2.内层判断循环条件
3.内层循环体执行
4.内层循环变量累加,回到2执行,直到不满足内层条件
5.外层循环变量累加,回到1执行,直到不满足外层循环条件,彻底退出循环
在这里插入图片描述
在这里插入图片描述
putchar函数是单个字符输出函数。只输出一个字符。此处用printf(“*”)也可以。。。在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

for(i=0;i<5;i++)
for(j=0;j<100;j++)
{}
for(j=0;j<100;j++)
for(i=0;i<5;i++)
{}
这两个程序哪个执行效率高?
答:
for(i=0;i<5;i++)
for(j=0;j<100;j++)
{}
效率高
双层循环,较长的循环放在内层效率要高 

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
break:跳出的是循环,不是跳出判断!!
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
两者区别在于,continue是一直执行continue上侧的语句,到continue就停止(结束本次循环),所以不会有出现printf的情况,到最后结束。
break是跳出循环,直接结束。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述在这里插入图片描述

  1. n=1,将n赋值为整型,导致最后结果出错,,,n应该赋值为double型
  2. 没有给b赋初值,导致陷入空集,无法运行
  3. 在最开始给b赋值为1,导致b变为类似常量的一个东西
  4. 循环开始使得sum=0;,导致sum一直为0,,,
    

在这里插入图片描述/*pow()函数用来求x的baiy次幂,x、y及函数值都是double型 , 其原型为:double pow(double x, double y)*/
在这里插入图片描述

在这里插入图片描述

  • 本程序输出的结果是pi=3.141594,但是只有前5位小数3,14159是准确的,因为第7位已经小于10^-6,后面的项没有累加。

类似的题目有:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述 在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

#include<stdio.h>
int main(){
	int num,i,count=0;
	printf("请输入一个整数:");
	scanf("%d",&num);
	if(num==0){
		printf("%d不是一个质数!",num);	
	}
	for(i=2;i<=num/2;i++){
		if(num%i==0){
			count++;
			break;
		}
	}
	if(num!=1 && count==0){
		printf("%d是一个质数!\n",num);	
	}else{
		printf("%d不是一个质数!\n",num);	
	}
	return 0;	
}
#include <stdio.h>
#include <math.h>
int main()
{
    int m;  // 输入的整数
    int i;  // 循环次数
    int k;  // m 的平方根
    printf("输入一个整数:");
    scanf("%d",&m);
    // 求平方根,注意sqrt()的参数为 double 类型,这里要强制转换m的类型
    k=(int)sqrt( (double)m );
    for(i=2; i<=k; i++)
        if(m%i==0)
            break;
    // 如果完成所有循环,那么m为素数
    // 注意最后一次循环,会执行i++,此时 i=k+1,所以有i>k
    if(i>k)
        printf("%d是素数。\n",m);
    else
        printf("%d不是素数。\n",m);
    return 0;
}
#include <stdio.h>
int main()
{
    int a=0;  // 素数的个数
    int num=0;  // 输入的整数
    printf("输入一个整数:");
    scanf("%d",&num);
    for(int i=2; i<num; i++)
    {
        if(num%i==0)
        {
            a++;  // 素数个数加1
        }
    }
    if(a==0)
    {
        printf("%d是素数。\n", num);
    }
    else
    {
        printf("%d不是素数。\n", num);
    }
    return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值