厦大计算机实验4 simple a+b

要注意数组的初始化

注意特殊情况的讨论(比如都是0)

厦大oj不能用语句 a=(a>b?:a,b); 会编译失败;

数组的界限 如a1是个数 却不是最大的下标

#include<stdio.h>

int main()
{
  int a,b,n[15]={0},p[15]={0},q[15]={0},a1,b1;
  int qushu(int x,int m[15]);
  
  scanf("%d %d",&a,&b);
  
  a1=qushu(a,p);                  //把a,b分离并记录位数
  b1=qushu(b,q);
  
  for(int i=0; i<a1||i<b1; i++)
  {
  	n[i]=(p[i]+q[i])%10;         //相加
  }
  
  if(a1<b1) a1=b1;
  
  while(n[a1-1]==0) 
  {
  	a1--;                     //去除首位的0
  	if(a1==0) break;
  }
  if(a1==0) printf("0");           //对111+999这种特殊情况的讨论
 
  else{
  	 for(int i=a1-1; i>-1; i--)
    {
  	  printf("%d",n[i]); 
    }
  }
 
  
   return 0;
}

int qushu(int x,int m[15])
{   
    int i=0;
	while(x>0)
	{
	  m[i++]=x%10;
	  x/=10;
	}
	return i;
}

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值