首页 > 其他分享 >C语言典型例题45

C语言典型例题45

时间:2024-08-19 13:52:58浏览次数:11  
标签:10 输出 int 45 C语言 while 循环 printf 例题

《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

标签:10,输出,int,45,C语言,while,循环,printf,例题
From: https://blog.csdn.net/2302_77517102/article/details/141323187

相关文章

  • C语言学习--排序和查找
    提示:排序和查找算法是算法领域中最基本的概念之一,它们在数据组织、优化查询效率等方面发挥着至关重要的作用。目录前言12.1排序算法的介绍12.2冒泡排序12.2.1基本介绍12.2.2冒泡排序应用实例12.2.3分析冒泡的过程+代码12.3查找12.3.1介绍12.3.2案例演示12......
  • C语言学习--断点调试
    提示:断点调试作为一种重要的调试技术,能够帮助程序员逐行分析代码的执行过程,查找潜在的Bug,并最终解决问题。目录前言13.1一个实际需求13.2断点调试介绍13.3断点调试的快捷键13.4断点调试应用案例113.5断点调试应用案例213.6断点调试应用案例313.7断点调试......
  • 嵌入式初学-C语言-二五
    构造类型   数据类型分类:基本类型:整数型短整型:short(2字节)整型:int(4个字节)长整型:long(8个字节)长长整型:longlong浮点型单精度:float(4个字节)双精度:double(8个字节)字符型:char(1个字节)指针类型数据类型*:int*,char*,float*等void*:任意数据类型指针空类型void......
  • c语言 小熊猫Dev cpp6.7.5版本bug
    问题描述:请看下面代码#include<stdio.h>#include<math.h>intmain(void){ intres=0; inti=2; res=pow(10,i); printf("%d",res); return0;}期望输出100,但是在pandaDevcpp6.7.5版本中会输出99在看下面的代码正确输出100#include<stdio.h>#include<ma......
  • 0245-CLAP-解析位置参数
    环境Time2022-12-02WSL-Ubuntu22.04CLAP4.0.29前言说明参考:https://docs.rs/clap/latest/clap/index.html目标CLAP表示CommandLineArgumentParser。基于clap编写第一个命令行程序。Cargo.toml[package]edition="2021"name="game"version="1.0.......
  • 利用C语言求字符串长度
    在C语言中库函数中已有求字符串长度的函数strlen,我们可以自己编写一个求字符串函数my_strlen求字符串长度注意:strlen函数返回类型是size_t,是无符号整型方法1:创建临时变量#include<stdio.h>intmy_strlen(char*str){   intcount=0;   while(*str!='\0......
  • 以c primer plus(第六版)为大纲的C语言初学手记,含示例代码及编程练习(第四章)
    //第4章//example4.1//#include<stdio.h>//#include<string.h> //toincludestrlrn()//#defineDENSITY62.4 //todefineaconstant//intmain()//{//   floatweight,volume;//   intsize,letters;//   charname[40]; //todeclareadig......
  • C语言基础- Hello World
    第一个C语言程序HelloWorld#include<stdio.h>//#关键标识符,表示用用头文件;include:引入都文件关键字 //stdio.h:系统标准输入、输出库对用的头文件。给printf函数服务 //<>:表示系统库函数,"":表示用户自定义库函数intmain(void) //int:函数返回值是整形数据......
  • C语言编程-GCC编译过程
    gcc编译预处理->编译->汇编->链接预处理gcc-Ehelloworld.c-ohelloworld.i头文件展开;不检查语法错误,即可以展开任意文件;宏定义替换;将宏名替换为宏值;替换注释;将注释替换为空行;展开条件编译;根据条件来展开指令;编译gcc-Shelloworld.i-ohelloworld.s逐行检查......
  • 专题:C语言操作符详解
    ⽬录1.操作符的分类2.⼆进制和进制转换3.原码、反码、补码4.移位操作符5.位操作符:&、|、^、~6.单⽬操作符7.逗号表达式8.下标访问[]、函数调⽤()9.结构成员访问操作符10.操作符的属性:优先级、结合性11.表达式求值1.操作符的分类•算术操作符:+、-......