pat甲组练习题 1001数组实现 c语言

pat甲组练习题 1001数组实现 c语言

第一次写csdn,最近在刷pat甲级。废话不多说直接放代码,注释已经很清楚啦,有啥问题或者建议欢迎反馈

#include<stdio.h>
int main()
{
    int a,b,sum,i;
    
    scanf("%d %d",&a,&b);
    sum=a+b;            //先用sum算出来我们要输出的数是多少,然后想办法把他输出
    
    if(sum<0)
    {
        printf("-");
        sum= (-sum);
    }
                        //如果是负数的话就先把这个数之前的负号输出了,等下就只要处理剩下的数字了
    if(sum==0)
	{
		printf("0");    //如果sum是0,直接输出0
		return 0;       //并且终止整个函数
	}
    
	int c[7];           //因为这俩个数任凭怎么相加也超不过7位,7个”座位“的数组用来存储这个数字够了
	i=0;int j=0;        //i用来给循环计数,j用来记录sum一共有多长
	while(sum!=0)
	{
		c[i]=sum%10;    //取sum的个位数,依次存入到c数组
        sum = sum/10;   //这个操作相当于扔掉sum的最后一位
		i++;            //这个循环完了之后sum就被存进c数组了,不过是倒着存的
	}
    j=i;                //上个循环的i记录了sum有多少位
	int k=i-1;          //k用来对逗号做处理
	for(i=j-1;i>=0;i--) //因为下标是从0开始的,但是sum是从1开始数的,所以-1变成下标数,从后往前取,取到0的时候停止
	{
      printf("%d",c[i]);//打印存进去的每一个sum的"个位数"
		if(k!=0&&k%3==0)//非0是因为到了最后一位的时候k是0,但是并不需要输出逗号
			printf(",");
		k--;
	}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值