网站首页 > 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第二十九章:数组详解(中篇)
欢迎 你 发表评论:
- 11-22台式电脑无线网络连接(台式电脑无线网络连接不上怎么解决)
- 11-22windows7自己电脑的激活密钥
- 11-22台式电脑组装图(台式电脑组装图纸)
- 11-22电脑开机后一会就蓝屏(电脑开机后一会就蓝屏是什么原因)
- 11-22改ip地址软件(改ip地址软件免费的有那些)
- 11-22电脑桌面没了怎么恢复(电脑桌面 没了)
- 11-22手机控制电脑远程开机(手机控制电脑远程开机怎么操作)
- 11-22手机镜像app下载(手机镜像软件下载)
- 最近发表
- 标签列表
-
- 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)

本文暂时没有评论,来添加一个吧(●'◡'●)