错题及分析-浙大版《C语言程序设计(第3版)》第4章 循环结构(练习4.3 判断素数)

1.
在这里插入图片描述
2.
在这里插入图片描述

3.

在这里插入图片描述
在这里插入图片描述

编程题:(非最优解,仅供参考)

7-1 判断一个整数是否为素数
本题要求编写程序,判断一个给定的整数是否为素数。素数就是只能被1和自身整除的正整数,1不是素数,2是素数。

输入格式:
输入在一行中给出一个需要判断的整数 M(−2的1次方≤M≤2的31次方−1)。

输出格式:
如果M是素数,则在一行中输出Yes,否则输出No。如果输入了非正整数,也要输出No。

#include<stdio.h>
#include<math.h>
int main(){
    int m,is_prime,limit;
    scanf ("%d", &m);
    if ( m == 1) {
        is_prime = 0; 
    } else if (m == 2) {
    	is_prime=1;
    } else if (m % 2 == 0) {
        is_prime = 0;
    } else{
    	is_prime=1;
    	limit = sqrt(m) + 1;
	    for(int i = 3; i <= limit; i += 2){
			if(m % i == 0){
	    		is_prime=0;
	    		break;
	        }
    	}
    }    
    if(is_prime==1)
    {
        printf("Yes\n");  
    }else{ 
        printf("No\n"); 
    }
}

7-2 简单的猜数字游戏[2]
猜数字游戏是令游戏机随机产生一个100以内的正整数,用户输入一个数对其进行猜测,需要你编写程序自动对其与随机产生的被猜数进行比较,并提示大了(“Too big”)、小了(“Too small”),还是相等(“Lucky You!”)。如果猜到,则结束程序。如果超过7次都没有猜到,则提示“Game Over!”,并结束程序。

输入格式:
输入第一行中给出一个不超过100的正整数,代表游戏机产生的随机数。 从第二行起,每行给出一个用户的输入,直到猜中或者超过7次还没有猜中。

输出格式:
每次在一行中输出相应的猜测结果,直到输出猜对的结果“Lucky You!”或“Game Over!”则结束。

#include<stdio.h>
#include<stdlib.h>
int main(){
	int n,num=0,ret;
	scanf("%d",&ret);
    while(1){ 
        scanf("%d",&n);
        num++;
         if(num>7){
            printf("Game Over!\n");
            break;
        }
        if(n>ret){
            printf("Too big\n");		
        }else if(n<ret){
            printf("Too small\n");
        }else{
            printf("Lucky You!\n");
            break;
        }
       
    }
}

做到最后,感觉最大的收获是学会了怎么判断素数(手动狗头)。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值