文章

19

粉丝

0

获赞

112

访问

2.2k

头像
大整数加法 C语言题解:
P1474 武汉大学机试题
发布于2026年3月17日 10:32
阅读数 42

char c[1005]={0};

存储想加结果的数组c一定要初始化,否则在print函数中计算strlen()会出错,正确率50%

#include<stdio.h>
#include<string.h>
#include<stdlib.h>

void add(char a[], char b[], char c[]){
	int t=0;
	int len=strlen(a);
	//c[len+1]='\0';
	for(int i=len-1; i>=0; i--){
		int he=(a[i]-'0'+b[i]-'0'+t);
		c[i+1]=he%10+'0';
		t=he/10;
	}
	c[0]=t+'0';
	
}

void print(char a[]){
	int k=a[0]=='0' ? 1 : 0;
	int len=strlen(a);
	//printf("[%d %d]",k,len);
	for(int i=k; i<len; i++){
		printf("%c", a[i]);
	}
	printf("\n");
}


int main(){
	char a[1005],b[1005];
	char temp[2005];
	while(fgets(temp, 2005, stdin)!=NULL){
		temp[strcspn(temp, "\n")]="\0";
		sscanf(temp, "%s %s", a, b);
		//printf("[%d-%d]",strlen(a),strlen(b));
		char c[1005]={0};
		add(a, b, c);
		print(c);
	}
	return 0;
}

 

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发