C语言典型例题45

news2024/9/27 17:30:49

《C程序设计教程(第四版)——谭浩强》


习题3.5 给一个不多于5位的正整数,要求:
          1.求出它是几位数;
          2.分别输出每一位数字;
          3.按逆序输出各位数字,例如:原数为321,输出为123


代码:

//《C程序设计教程(第四版)——谭浩强》
//习题3.5 给一个不多于5位的正整数,要求:
//		  1.求出它是几位数;
//		  2.分别输出每一位数字;
//		  3.按逆序输出各位数字,例如:原数为321,输出为123

#include <stdio.h>

int wei_shu(int x);
int meiyiwei_shuzi(int x);
int ni_xv(int);


int main()
{
	int x = 0;
	
	printf("请输入一个不多于五位的正整数:\n");
	scanf("%d",&x);
	
	wei_shu(x);//1.求出它是几位数;
	meiyiwei_shuzi(x);//2.分别输出每一位数字;
	ni_xv(x);//3.按逆序输出各位数字,例如:原数为321,输出为123
	
	return 0;
}

int wei_shu(int x)
{
//	printf("传参过来的x=%d\n",x);
	int i=0;
	while(x)
	{
		x=x/10;
		i++;
	}
	printf("这个数是%d位数\n",i);
	
	return 0;
}

int meiyiwei_shuzi(int x)
{
	int y=0;
	int i=0;
	while(x)
	{
		y=x%10;
		printf("这个数的位数为(从个位依次递增):%d\n",y);
		x/=10;
		i++;
		
	}
	
	return 0;
}

int ni_xv(int x)
{
	int y=0;
	printf("按逆位输出的数为:");
	int i=0;
	while(x)
	{
		y=x%10;
		x/=10;
		i++;
		printf("%d ",y);
	}
	
	return 0;
}

运行结果:

编写代码时遇到的问题:

(1)函数传参

在C语言中,函数的参数传递方式:值传递指针

这意味着当你将一个参数传递给一个函数时,函数会接收到这个参数的一个副本,而不是原始参数本身。

  1. 值传递

     2.使用指针进行引用传递

(2)while的判断条件

在C语言中,while循环的判断条件,当其值为真时继续执行循环体,为假时跳出循环。

        while(表达式)

        {

              语句1;//代码块

        }

其中"表达式"是循环执行的条件,当"表达式"为真(非0)时,执行循环内的语句,为假(0)时,跳出循环。

解决方案:

  1. 无限循环:如果你想要的是一个无限循环,你可以使用while(1)。

  2. 条件控制循环:你可以使用任何条件表达式来控制循环,例如:

        int i = 0;

        while(i < 10)

        {

            printf("i is %d\n", i);

            i++;

        }

     3.用户输入控制循环:你可以使用用户输入来控制循环,例如:

        char input;

        printf("Enter q to quit: \n");

        while((input = getchar()) != 'q')

        {

            printf("You did not enter q!\n");

        }

       4.指针控制循环:你可以使用指针来控制循环,例如:

        int numbers[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};

        int *ptr = numbers;

        while(ptr - numbers < 10)

        {

            printf("Element %d: %d\n", ptr - numbers, *ptr);

            ptr++;

        }

       5.函数返回值控制循环:你可以使用函数的返回值来控制循环。

3.%与/的区别

例如:x=1234

%取余(取模) (int)x%10=4

/ 除                     (int)x/10=123

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2052786.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

修改了原神4.8版本升级数据表

<!DOCTYPE html> <html lang"zh-CN"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>原神4.8版本升级数据表</title> </head&…

jQuery的遍历和动画

一&#xff0c;前言 jQuery提供了一系列的方法来帮助开发者轻松地遍历和操作DOM元素集合&#xff0c;同时jQuery 提供了一些简单的方法来实现基本的动画效果&#xff0c;如淡入淡出、滑动等&#xff0c;同时还允许用户创建自定义动画序列。 二&#xff0c;遍历 &#xff08;1&…

【TCP/IP】确认应答、超时重传机制和TCP报头

TCP 相关机制 TCP 基本特点&#xff1a;有连接、可靠传输、面向字节流、全双工 有连接、面向字节流和全双工都能在前面的代码中体现有连接&#xff1a;必须要先调用 accept 建立联系才能处理面向字节流&#xff1a;会拿到 clientSocket 对象的 InputStream 和 OutputStream&a…

[书生大模型实战营][L0][Task2] Python 开发前置知识

0. 任务&#xff1a;在 InternStudio 环境中实现功能&#xff1a; python 实现 wordcount函数&#xff0c;统计英文字符串单词的使用频率&#xff0c;并返回字典&#xff1b;vscode 远程调试 InternStudio 中的 python 代码 1. wordcount 函数实现 string.punctuation 是一个…

从【人工智能】到【计算机视觉】,【深度学习】引领的未来科技创新与变革

前几天偶然发现了一个超棒的人工智能学习网站&#xff0c;内容通俗易懂&#xff0c;讲解风趣幽默&#xff0c;简直让人欲罢不能。忍不住分享给大家&#xff0c;点击这里立刻跳转&#xff0c;开启你的AI学习之旅吧&#xff01; 前言 – 人工智能教程https://www.captainbed.cn/l…

CentOS迁移案例 | 保障轨道交通安全、发挥基础设施效能,麒麟信安操作系统支撑某市轨道交通畅行无忧

为缓解城市交通拥堵难题&#xff0c;某市轨道交通公司计划新建一条贯穿城市关键区域、沿路设立20座站点的轨道交通线路&#xff0c;并基于麒麟信安操作系统构建轨道交通信号系统。 轨道交通信号系统是列车核心控制系统&#xff0c;负责列车运行的自动化控制&#xff0c;及对整…

【python】python代码打包工具cx_Freeze的介绍、原理、用法及实战案例分析

✨✨ 欢迎大家来到景天科技苑✨✨ &#x1f388;&#x1f388; 养成好习惯&#xff0c;先赞后看哦~&#x1f388;&#x1f388; &#x1f3c6; 作者简介&#xff1a;景天科技苑 &#x1f3c6;《头衔》&#xff1a;大厂架构师&#xff0c;华为云开发者社区专家博主&#xff0c;…

学习机MP3语音芯片方案:WMV硬解码芯片,N9301-316

在当今数字化时代&#xff0c;学习机已不再仅仅是静态的物品。随着技术的快速发展和不断探索创新方法&#xff0c;人们将音乐与互动学习相融合&#xff0c;为儿童创造出更加富有创意和学习机产品。其中&#xff0c;九芯电子N9301系列MP3解码芯片在这一领域的应用正在崭露头角&a…

Android常见控件(一)

目录 前言 一、TextView控件 常用属性 二、Button控件 设置点击事件的方式 1.在布局文件中指定onClick的值 2.使用匿名内部类 3.通过实现onClickListener接口 三、ImageView控件 常见属性 src与background的区别 scaleType 1.ScaleType.FIT_CENTER默认 2.ScaleTy…

Java学习高级五

API 常用API Object类 Object类的常见方法

数据结构与算法 - 双指针

一、移动零 给定一个数组 nums&#xff0c;编写一个函数将所有 0 移动到数组的末尾&#xff0c;同时保持非零元素的相对顺序。 请注意 &#xff0c;必须在不复制数组的情况下原地对数组进行操作。 示例 1: 输入: nums [0,1,0,3,12]输出: [1,3,12,0,0]示例 2: 输入: nums …

Linux文件传输命令介绍(非常详细)零基础入门到精通,收藏这一篇就够了

文件传输命令 1 ftp&#xff1a;传统的文件传输协议,使用广泛但安全性较低。 sftp&#xff1a;基于SSH的安全文件传输协议,提供交互式的文件管理功能。 tftp&#xff1a;简单的文件传输协议,主要用于网络设备的固件升级。 lftp&#xff1a;功能强大的FTP客户端,支持多种文件…

2024最新外卖霸王餐小程序系统源码|霸王餐美团/饿了么系统 粉丝裂变+私域运营+持续稳定

前言&#xff1a; 外卖霸王餐小程序是一种结合了外卖点餐和优惠返利功能的微信小程序&#xff0c;为用户提供了一种便捷的点餐体验和优惠福利。 一、霸王餐系统小程序是什么&#xff1f; 霸王餐系统是指一种特殊的营销活动平台&#xff0c;商家通过该平台提供免费或大幅度折…

【深度学习】嘿马深度学习笔记第3篇:TensorFlow介绍,学习目标【附代码文档】

本教程的知识点为&#xff1a;深度学习介绍 1.1 深度学习与机器学习的区别 TensorFlow介绍 2.4 张量 2.4.1 张量(Tensor) 2.4.1.1 张量的类型 TensorFlow介绍 1.2 神经网络基础 1.2.1 Logistic回归 1.2.1.1 Logistic回归 TensorFlow介绍 总结 每日作业 神经网络与tf.keras 1.3 …

Netty深度剖析(2)— 事件调度

我们在上一节已经简单的介绍了一下 Netty 的事件调度&#xff0c;可以说 Netty 高性能的奥秘主要就在于其核心的事件循环和任务处理引擎&#xff0c;那么它究竟是如何实现的呢&#xff1f;这一节我们来详细探讨一下 Reactor 线程模型 在解释 Netty 事件循环的实现原理前&#…

C语言enum枚举

目录 开头1.什么是枚举?2.枚举的优缺点优点缺点 3.枚举的实际用途(这里只列举其一)简易计算器枚举版…… 结尾 开头 大家好&#xff0c;我叫这是我58。今天&#xff0c;我们要学关于C语言枚举的一些知识。 1.什么是枚举? 枚举&#xff0c;就是一一列举的意思&#xff0c;比…

Verilog刷题笔记53

题目&#xff1a; Fsm serialdata See also: Serial receiver Now that you have a finite state machine that can identify when bytes are correctly received in a serial bitstream, add a datapath that will output the correctly-received data byte. out_byte needs …

Identity IdCard OCR API 对接说明

Identity IdCard OCR API 对接说明 本文将介绍一种通过输入身份证图片 或 姓名和身份证号码&#xff0c;来校验姓名和身份证号的真实性和一致性。本接口用于校验姓名和身份证号的真实性和一致性&#xff0c;您可以通过输入姓名和身份证号或传入身份证人像面照片提供所需验证信…

消息系统-WebSocket消息推送

消息系统-WebSocket消息推送 接口层使用消息通知 1.数据库设计: 1.消息通知表 2.消息记录表 3.用户表和角色表及用户角色记录表 2.设计: 未使用消息中间件 ,利用接口层调用消息通知接口工具类 3.前端:消息通知页面 1.消息通知列表 2.消息通知标签 3.消息通知未读抽屉列表 一.…

【C#】虚部与实部

实数是数学中的一个基本概念&#xff0c;它包括了所有的有理数和无理数。实数集合是连续的&#xff0c;可以表示为数轴上的每一个点。 复数是实数的扩展&#xff0c;它允许进行除零以外的所有基本算术运算。复数由两部分组成&#xff1a;实部和虚部。 实部&#xff08;Real P…