首页 > 其他分享 >明解c语言第四章while语句练习4-6和练习4-7

明解c语言第四章while语句练习4-6和练习4-7

时间:2024-10-30 19:47:07浏览次数:3  
标签:练习 no int 明解 while printf 输入

就在前几天我学习了一个do语句,接着这几天学习了一个while语句,看完书来写练习4-6和练习4-7感觉一头雾水,可能是今天中午没睡觉的缘故我脑子里空空的,于是对于练习4-6我求助了ai

练习4-6:编写一段程序,按照升序显示出小于输入值的所有真偶数

ai是这样写的

//编写一段程序,按照升序显示出小于输入值的所有正偶数
#define  _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

int main()
{
	int n, i = 0;

	printf("请输入一个正整数:");
	scanf("%d", &n);

	while (i <= n)
	{
		if (i > 0 && i % 2 == 0)  //0是整数,但不是正整数
		{
			printf("%d ", i);
		}

		i++;
	}

	puts("");

	return 0;
}

感觉有点难想(个人见解)而且if语句中的i%2=0感觉想不出来怎么办呢,于是我想了另一个办法,先定义两个变量,赋值其中一个变量==1,是不是只要让这个变量在乘上2之后每次递加到输入的数的值是不是就可以了于是便有了

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>

int main()
{
    int a = 1, no;
    printf("请输入一个正整数");
    scanf("%d", &no);
    if (no >= 2) {
        while (a * 2 <= no)
        {
            printf("%d ", a * 2);
            a++;
        }
    }
    else
        printf("没有偶数");

    return 0;
}

这样写是不是就比较符合我们普通人的思想,比较简单翻译我们的语言,达到效果。

那接着还有练习4-7:编写一段程序,显示出小于输入的整数的所有2的乘方。

起初我以为这不是我的题出错地方了吧,怎么感觉需要后面的for循环啊。然后我又求助了小爱同学。她给我的代码是:

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

int main() {
    int n, i, j;

    printf("请输入一个整数: ");
    scanf("%d", &n);

    for (i = 0; i < n; i++) {
        for (j = 0; j < 31; j++) {
            if (((1 << j) <= n) && (((1 << j) & n) != 0)) {
                printf("2的%d次方: %d\n", j, 1 << j);
            }
        }
    }

    return 0;
}

感觉写的好难啊,我还没学到for循环能不能换个方式,于是我开始思考用while循环写。想了好长时间,半节水课的时间,终于想出来了!!!我可以效仿我第一个写的代码,定义两个变量,令其中一个变量等于1,让这个变量不断地乘上2直到这个数小于等于我输入的数字。于是开始编码。

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>

int main() {
    int a = 1, no;
    printf("请输入一个正整数");
    scanf("%d", &no);
    if (no >= 2) {
        while (a * 2 <= no) {
            printf("%d ", a * 2);
            a = a * 2;
        }
    }
    else
        printf("不存在2的正整数次方");
    return 0;
}

这个代码是不是非常nice,使用了我们现在所学的代码,也可以成为一个模板,无论是3的乘方还是任何数,我们都可以套用。这个跟上面的那个代码也具有异曲同工之妙,你们学会了吗?

你们可以试着打出显示3的乘方亦或者其他数的乘方发在评论区我们可以一起探讨。

各位大帅哥大美女们,求求你们一键三联,支持支持我这个小白吧!!!

标签:练习,no,int,明解,while,printf,输入
From: https://blog.csdn.net/2401_87607041/article/details/143241135

相关文章

  • [Python学习日记-58] 开发基础练习1——员工信息查询
    [Python学习日记-58]开发基础练习1——员工信息查询简介题目答案简介        该练习结合了函数和一些常用的模块开发了一个使用命令行交互的员工信息查询程序,可以巩固实践之前学习的内容。题目一、程序需求        现要求你写⼀个简单的员⼯信息增删......
  • 【C++练习】找出100到200之间不能被3整除的所有整数
    题目:找出100到200之间不能被3整除的所有整数题目描述:编写一个C程序,要求遍历100到200(包括100和200)之间的所有整数,并输出其中不能被3整除的所有整数。每个整数之间用一个空格隔开,在输出完所有满足条件的整数后,输出一个换行符。输出要求:输出100到200之间不能被3整除的所有整数......
  • C++算法练习-day26——239.滑动窗口的最大值
    题目来源:.-力扣(LeetCode)题目思路分析题目:给定一个整数数组 nums 和一个整数 k,请找出该数组中所有长度为 k 的子数组中的最大元素,并返回这些最大元素组成的数组。思路:滑动窗口:这是一个典型的滑动窗口问题,其中窗口的大小为 k。我们需要遍历整个数组,同时保持一......
  • C++算法练习-day27——347.前k个高频元素
    题目来源:.-力扣(LeetCode)题目思路分析题目:找出数组中出现频率最高的前K个元素。这个问题要求我们从给定的数组nums中找出频率最高的前k个元素。这通常意味着我们需要统计每个元素的出现次数,然后根据这些次数进行排序,并提取前k个元素。以下是解决这个问题的思路:统计频率:首......
  • C++练习:股票买卖的最佳时机(1~4)
    121.买卖股票的最佳时机简介这是一道简单题,思路是找卖出那一天前的最低价格,然后记录卖出后的最大利润。按照动态规划的思路解题,我们需要找到原问题和子问题的转移关系。分析:n天内的最大利润,一定是1~n内某一天卖出股票的最大利润。我们知道要使我们手中的股票得到最大利润,就......
  • C10-09-XSS之获取键盘记录、盲打获取cookie及克隆网站和文件上传绕过练习
    免责声明本文仅是个人对XSS和文件上传绕过及相关工具的学习测试过程记录,不具有恶意引导意向。一使用pikachu平台练习XSS键盘记录以dvwa-Low靶场为目标网站,通过dvwa的存储型XSS上传JS,验证pikachu工具对dvwa靶场页面键盘操作的记录1.1调试pikachu环境①调整Pikac......
  • vue2基础组件通信案例练习:把案例Todo-list改写成本地缓存
    @目录概述前端代码本人其他相关文章链接概述前面文章案例已经练习了父子组件之间的通信,这一节讲述如何把todos数组放进本地缓存中,因为实际开发场景中频繁查询的数据很有可能会用到本地缓存技术。思考:如何改成使用本地缓存,是写一堆按钮每次触发就是往本地缓存种get和set?答案......
  • vue表单案例练习:vue表单创建一行数据及删除数据的实现与理解
    如何使用Vue:基本结构:1、引入Vue的核心JS文件2、准备Dom结构3、实例化组件通过el属性,挂载元素,绑定id为app的html元素通过data属性,定义数据,可以在html代码段中显示的数据4、获取数据数据绑定最常见的形式就是使用“Mustache”语法(双大括号)的文本插值@目录目标两个例......
  • Tiki靶机练习
    Scan先arp-scan-l扫描附件主机ipnmap-sS-sV-n-T4-p-192.168.93.132StartingNmap7.94SVN(https://nmap.org)at2024-10-0320:25CSTNmapscanreportfor192.168.93.132Hostisup(0.0013slatency).Notshown:65531closedtcpports(reset)PORTSTAT......
  • ImportError: DLL load failed while importing _errors: The specified procedure co
    importh5pyImportError:DLLloadfailedwhileimporting_errors:Thespecifiedprocedurecouldnotbefound. ImportError                              Traceback(mostrecentcalllast)CellIn[2],line1---->1importh5pyFile......