【ONE·C || 关于数字输出的问题】

【ONE·C || 关于数字输出的问题】,第1张

【ONE·C || 关于数字输出的问题】 总言

  思路汇聚,对初学者的我来说值得学习。
  会慢慢学习和补充。

文章目录
  • 总言
  • 一、反向输出四位数
    • 一)、法一
    • 二)、法一的改编版
    • 三)、法二

一、反向输出四位数
  • 题目:
       输入一个四位数,反向输出对应四位数。
      
一)、法一
  • 类似题: 输出二进制位数、八进制位数、十六进制位数

   笔者需要学习的一种写法。这种写法强调用“除10余10”的思维来完成数位转换过程。

#define _CRT_SECURE_NO_WARNINGS //预处理命令与标识符
#include 

int main(void)
{
//输入四位整数:
	int a;
	printf("输入四位数:");
	scanf("%d", &a);
//对该整数进行一个循环,使数位反向。	
	int rem,i;
	for (i = 0; i < 4; i++)
	{
		rem=a% 10;
		a /= 10;
		printf("%d", rem);
	}
	
	return 0;
}

  由于上述代码采用了for循环,因其条件判断表达式的限制,只针对四位数有效,因此有改进空间,比如:考虑while循环等。
  如下:这样写的好处在于减少了变量的使用,且比较简洁,通用性也强。

#define _CRT_SECURE_NO_WARNINGS //预处理命令与标识符
#include 

int main(void)
{
	int a;
	printf("输入四位数:");
	scanf("%d", &a);
	while(a)//a为真会一直循环,直至a=0为假跳出循环。
	{
		printf("%d", a % 10);
		a /= 10;
	}
	return 0;
}

  

二)、法一的改编版

  对法一再进行逻辑优化,使其更符合数学运算规则。
  ps:加入定义函数纯属练习,也可以直接在main函数里完成。但考虑到当程序繁杂时,通常情况下不是所有代码都往main函数里抛,于是采取了定义函数的方法。

#define _CRT_SECURE_NO_WARNINGS //预处理命令与标识符
#include 

//创建一个输入正整数的函数。
int post(void)
{
	printf("输入一个正整数:");
	scanf("%d", &num);
	return num;
}

//创建一个计算反向数值的函数。
int rev(int num)
{
	int i = 0;
	do{
		i = i*10 + num %10;
		num /= 10;
	}while(num);
	return num;
}

int main(void)
{
	printf("反向数值为:%d",rev(post()));
	return 0;
}

  
  

三)、法二

  一种比较神奇的写法(个人想过这种写法,但做题时考虑到代码不能只停留在比较简单的层面,就换了种思路)

#define _CRT_SECURE_NO_WARNINGS //预处理命令与标识符
#include 

int main(void)
{
	int a, b, c, d;
	printf("输入四位数:");
	scanf("%1d%1d%1d%1d", &a, &b, &c, &d);
	printf("%d%d%d%d",d,c,b,a);
	return 0;
}

  

  • 法三
在这里插入代码片

  
  

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5503282.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-12
下一篇 2022-12-13

发表评论

登录后才能评论

评论列表(0条)

保存