求助高精/sizeof问题
  • 板块学术版
  • 楼主anaoai
  • 当前回复3
  • 已保存回复3
  • 发布时间2022/1/31 11:40
  • 上次更新2023/10/28 09:59:32
查看原帖
求助高精/sizeof问题
560814
anaoai楼主2022/1/31 11:40

在这个代码中,输入123 123 会输出246 200,但是把clear函数中的sizeof(clearbase)+1就会输出246 0,为什么这里sizeof不能准确读取它的大小

#include <bits/stdc++.h>
#define LEN 1020
using namespace std;
int a[LEN],b[LEN],c[LEN];
void clear(int clearbase[]){
	memset(clearbase,0,sizeof(clearbase));
}
void readz(int readbase[]){
	static char s[LEN];
	cin>>s;
	clear(readbase);
	int len=strlen(s);
	for(int i=0;i<len;i++)
		readbase[len-i-1]=s[i]-'0';
}
void print(int putbase[]){
	int i;
	for(i=LEN-1;i>0;i--)
		if(putbase[i]!=0)
			break;
	for(i;i>=0;i--)
		putchar(putbase[i]+'0');
}
void adder(int first[],int second[],int answer[]){
	clear(answer);
	for(int i=0;i<LEN;i++){
		answer[i]+=first[i]+second[i];
	if(answer[i]>=10){
		answer[i+1]++;
		answer[i]-=10;
		}
	}
}
void suber(int first[],int second[],int answer[]){
	clear(answer);
	for(int i=0;i<LEN;i++){
		answer[i]+=first[i]-second[i];
	if(answer[i]<0){
		answer[i+1]--;
		answer[i]+=10;
		}
	}
}
int main(){
	readz(a);
	readz(b);
	adder(a,b,c);
	print(c);
	putchar('\n');
	suber(a,b,c);
	print(c);
	return 0;
}
2022/1/31 11:40
加载中...