网站首页 > java教程 正文
我们学会了c语言编程语法基础,还要学会活学活用里面的c语法规定。让我们回想一下当初学习c语言的数组模块:数组(array)由一些类型相同的元素构成。当我们只是声明数组(int a[10];//声明了含有10个int类型元素的数组)没有初始化时,其实就和声明普通变量(int a;)一样,存储的是无用的值;但是,如果部分初始化数组,未初始化的元素则被设置为0。
正好我们可以用这个规定实现求两个整数相加时进位的总次数,我们知道,如果一个整数的值为58,则它的百位、千位、万位、至以上都是0,所以我们利用这个特点和数组的初始化规定结合使用,当两个整数位数不一样时,位数较少的我们可以用0补充,我们初始化数组时只需初始化第一个元素设置为0,其余元素则也变为0,这样就可以按照位数较大的整数的位数来统计进位次数了。下面的c程序程序代码就是用来输入两个整数,而且求它们相加时的进位次数(下面的代码是在vs2015上编译运行的):
#define _CRT_SECURE_NO_DEPRECATE #include<stdio.h> #include<math.h> int cal(int x); int main(void) { int n1, n2, x, y; int i, j; int a[10] = { 0 };//用来存储一个整数的每一位数字值 int b[10] = { 0 };//用来存储一个整数的每一位数字值 printf("Please enter two number:"); scanf("%d %d", &n1, &n2); int max, count = 0;//max记录输入的两个整数中的最大位数,count用来统计两个整数相加时总共进位的次数 x = n1; y = n2; for (i = cal(x); i >= 1; i--) { a[i] = x / (int)pow(10, i - 1); x = x % (int)pow(10, i - 1); } for (j = cal(y); j >= 1; j--) { b[j] = y / (int)pow(10, j - 1); y = y % (int)pow(10, j - 1); } printf("n1bit = %d,n2bit = %d\n",cal(n1),cal(n2)); if (n1 >= n2) { max = cal(n1); } else { max = cal(n2); } for (i = 1; i <= max; i++) { if ((a[i] + b[i]) >= 10) { a[i + 1] += 1; count++; } } printf("相加时进位次数为:%d\n", count); system("pause"); return 0; } //用来返回一个整数的位数 int cal(int x) { int temp = 10, wei = 1; while (x >= temp) { temp *= 10; wei++; } return wei; }
这是以前学习c语言基础时遇到过几个利用数组部分元素初始化,其余元素是0的特点的小程序,今天帮别人解决一个小问题时发觉这个特点还真的很好用,所以博主就想和大家分享一下,希望我们大家都能从基础中学好并利用好最简单最基础的知识。
最后,如果你想学C/C++可以私信小编“01”获取素材资料以及开发工具和听课权限哦!
猜你喜欢
- 2024-10-23 运维--shell 中数组的操作(shell中数组如何定义)
- 2024-10-23 C/C++编程笔记:C 语言字符数组的定义与初始化,讲解到位
- 2024-10-23 Java SE之——数组 基础篇(java入门数组基础educoder)
- 2024-10-23 初识Java—(十)数组(1)(初识java)
- 2024-10-23 C语言数组算法实现_初始化(c语音数组初始化)
- 2024-10-23 北大学霸!手抄万字Java数组笔记,2小时吃透,你确定不拿走?
- 2024-10-23 C语言中的数组:声明、初始化和操作
- 2024-10-23 「C语言」初始化数组,C语言中初始化特定列表和元素
- 2024-10-23 C语言一维数组,如何初始化?有哪些方式?
- 2024-10-23 “全栈2019”Java第二十九章:数组详解(中篇)
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- java反编译工具 (77)
- java反射 (57)
- java接口 (61)
- java随机数 (63)
- java7下载 (59)
- java数据结构 (61)
- java 三目运算符 (65)
- java对象转map (63)
- Java继承 (69)
- java字符串替换 (60)
- 快速排序java (59)
- java并发编程 (58)
- java api文档 (60)
- centos安装java (57)
- java调用webservice接口 (61)
- java深拷贝 (61)
- 工厂模式java (59)
- java代理模式 (59)
- java.lang (57)
- java连接mysql数据库 (67)
- java重载 (68)
- java 循环语句 (66)
- java反序列化 (58)
- java时间函数 (60)
- java是值传递还是引用传递 (62)
本文暂时没有评论,来添加一个吧(●'◡'●)