/************************************************************************* > File Name: 2.c > Author:narutolby
> Created Time: 2013年01月02日 星期三 14时34分25秒
************************************************************************/
#include<stdio.h>
#define MAX_SIZE 102
int main1(){
int a = '0';
printf("%d\n",a);
return 0;
}
int main(){
char a[MAX_SIZE],b[MAX_SIZE],c[MAX_SIZE+1];
int i;
for(i=0;i<=MAX_SIZE;i++){
c[i] = '0';
}
int a_len,b_len;
void sub(char*a,char*b,char*c,int a_len,int b_len);
void plus(char*a,char*b,char operation,char*c,int a_len,int b_len);
scanf("%s %s",a,b);
for(a_len=0;a[a_len]!='\0';a_len++);
for(b_len=0;b[b_len]!='\0';b_len++);
if(a[0]=='-'&& b[0]!='-') {
plus(a+1,b,'-',c,a_len-1,b_len);
}else if(a[0]=='-' && b[0]=='-'){
sub(b+1,a+1,c,b_len-1,a_len-1);
}else if(a[0]!='-' && b[0]!='-'){
sub(a,b,c,a_len,b_len);
}else if(a[0]!='-' && b[0]=='-'){
plus(a,b+1,'+',c,a_len,b_len-1);
}
return 1;
}
int max(int a,int b){
if(a>=b){
return a;
}else{
return b;
}
}
void mainSub(char*a,char*b,char*c,int a_len,int b_len,char operation){
int i=a_len-1,j=b_len-1,k=a_len-1;
*(c+k+1)= '\0';
while(j>=0){
int va = *(a+i)-48;
int vb = *(b+j)-48;
int vc = va - vb;
int temp = 1;
if(vc<0){
while(*(a+i-temp)=='0'){
*(a+i-temp) = '9';
temp++;
}
*(a+i-temp)=*(a+i-temp)- 1;
vc +=10;
}
*(c+k)=vc+48;
j--;i--;k--;
}
while(i>=0){
*(c+k)=*(a+k);
i--;k--;
}
if(operation=='-'){
putchar('-');
}
while(*(c+k+1)!='\0'){
if(*(c+k+1)!='0'){
break;
}
k++;
}
printf("%s",c+k+1);
putchar('\n');
}
void sub(char*a,char*b,char*c,int a_len,int b_len){
if(a_len>b_len){
mainSub(a,b,c,a_len,b_len,'+');
}else if(a_len<b_len){
mainSub(b,a,c,b_len,a_len,'-');
}else{
int i;
for(i=0;i<a_len;i++){
if(a[i]==b[i]){
continue;
}else if(a[i]>b[i]){
mainSub(a,b,c,a_len,b_len,'+');
break;
}else{
mainSub(b,a,c,b_len,a_len,'-');
break;
}
}
if(i==a_len)
printf("%c\n",'0');
}
}
void plus(char*a,char*b,char operation,char*c,int a_len,int b_len){
int c_len = max(a_len,b_len)+2;
*(c+c_len) = '\0';
int i=a_len-1,j=b_len-1,k=c_len-1;
while(i>=0 && j>=0){
int va = *(a+i)-48;
int vb = *(b+j)-48;
int vc = *(c+k)-48;
int sum = va + vb + vc;
int temp = 0;
while(sum>0){
*(c+k-temp)=sum % 10+48;
sum = sum / 10;
temp++;
}
i--;j--;k--;
}
while(i>=0){
int va = *(a+i)-48;
int vc = *(c+k)-48;
int sum = va + vc;
*(c+k) =sum + 48;
i--;k--;
}
while(j>=0){
int vb = *(b+j)-48;
int vc = *(c+k)-48;
int sum = vb + vc;
*(c+k) =sum + 48;
j--;k--;
}
if(operation=='-'){
putchar('-');
}
printf("%s\n",*(c+k)!='0'?(c+k):(c+k+1));
}
分享到:
相关推荐
实验室安全试题&答案 北邮 题目有重复的
BUPT信号与系统2006真题,为您北京邮电大学考研之路奠定一滴基础。
BUPT信安数字内容安全期末试题
BUPT计算机学院大一新生入学课程 - 计算导论与程序设计,该包内的OJ题可供参考,整合了源代码和可执行文件。历届上机题不一定完全一样,但还是有参考价值的。
这里我汇总了绝大部分北邮BUPT OJ 上的中文题,中文题也就都是往年题。有从10年开始到14年的所有机试往年题。我的博客里有上述文档里所有的题。谁知道怎么降低下载积分?现在看不到这个选项了
2010-2011软工期中试题_有答案(BUpt)
2013——2014 学年第二学期 《工程数学》期末考试试题(B 卷) 2015——2016 学年第二学期 《工程数学》期末考试试题(B 卷) 2016——2017 学年第一学期 《工程数学》补考试题 2020——2021 学年第一学期《工程数学...
计组实验bupt .rar
2023bupt大创遥感语义分割.rar2023bupt大创遥感语义分割.rar2023bupt大创遥感语义分割.rar2023bupt大创遥感语义分割.rar2023bupt大创遥感语义分割.rar2023bupt大创遥感语义分割.rar2023bupt大创遥感语义分割.rar2023...
BUPT计算机学院大三上数据库系统原理配套实验。压缩包中包含实验一-实验六,包含数据库实验报告及数据,最终数据库课程成绩93
第二章-第七章 图数据库 文档数据库 列祖数据库作业
期中卷子,期末卷子,课本答案,作业,ppt,学习笔记,当时的全套学习记录
bupt的java作业大全 HelloWorld EightQueen八皇后 展示多态应用例子 作业报告,word中有源代码
2018———2019学年第二学期《概率论与数理统计》期末考试试题 2018———2019学年第二学期《概率论与数理统计》期末考试试题及答案 2019———2020学年第二学期《概率论与数理统计》期末考试试题 2019———2020...
疫情在家学习,必备打铃器,BUPT原汁原味上下课音乐,带你梦回学校
BUPT计算机系统csapp四次实验报告
bupt形式语言与自动机作业答案
BUPT计算机学院大雾,期末试卷,ppt
BUPT大三蒋老师linux环境课程,包含4次实验参考以及相关课件,Mooc上有相关课程,期末成绩95
分布式温控系统的代码以及可执行文件。采用python语言进行编程,利用pyqt5进行图形化设计,采用mysql数据库进行存储。期末98