能使用数组的方式对两个15位的正整数相加,并将结果显示出来。

本文详细讲解了C语言中如何使用%1d格式读取无空格整数输入,并利用数组进行逐位相加,以及处理进位问题。展示了将两个数组元素相加并将结果存储在第三个数组中的示例代码。
摘要由CSDN通过智能技术生成

第一步:

1.头文件的写法相信大家应该都会了,都是最基础的了,然后是根据题目定义两个数组a[]和b[],此外再定义一个数组c[],后面有大用。

2.第七行的代码运用了%1d的写法,因为要输入像123489这样没有空格的整型数字,中间没有空格,必须这样规定。

解释%1d与%d的区别在scanf函数中

1.来看当为%d时输入的格式和输出

由输入可知,输入格式为2 3 4 5而不是2345,中间会空一格,这是因为后面是&a[i],这样每个元素前加了地址符,输入时以空格符来间隔每个数字输入。

2.当以%1d来输入时

当以%1d格式输入时,我们输入2345(没有空格),输出依然是2345,这是因为%1d规定了每个长度为1,而空格符会算成一个长度,所以我们人为规定了就不用加空格来告诉程序我们输入数字了,直接输入就行了。

第二步

1.我们去想,数组是一个一个元素组成的,那么我们要将两个数相加,就是从个位相加,一个一个数相加,哎,那不就是思路出来了吗?我们将两个数组的同个序号的数相加储存在一个数组里,在来点运算,不就是相加后的结果了吗?

第三步

输出就行了,最后整个代码如下:

#include<stdio.h>
int main()
{
	int a[15], b[15], c[15];//定义三个长度为15的数组
	int i, k = 0;

	for (i = 0; i < 15; i++)//获取两个数组的内容
	{
		scanf_s("%1d",&a[i]);//这步极其重要,将获取的单位长度变为1
	}
	for (i = 0; i < 15; i++)
	{
		scanf_s("%1d",&b[i]);
	}

	for (i = 14; i >= 0; i--)
	{
		c[i] = a[i] + b[i] + k;
		k = 0;
		if (c[i] > 9)
		{
			c[i] = c[i] - 10;
			k++;
        }
	}

	for (i = 0; i < 15; i++)
	{
		printf("%d",c[i]);
	}

	return 0;
}

最后,希望能帮助到大家,下期再见咯!拜拜咯,还是第一次写这么长的,呼呼。

  • 9
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

进击的肖鹿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值