永发信息网

C语言 两个任意长度一维数组的加法

答案:2  悬赏:80  手机版
解决时间 2021-03-22 11:07
两个数组长度相同才能相加吗?长度不一样时长度较小的要补零的吗?现在用matlab做数字信号处理实验实现任意长度有限序列加法,老师问C如何实现? C语言忘的连格式都不记得了,,求大神指导?
最佳答案
#include
#include
char s[100001];
int a[100001],b[100001],c[100001];

int main(){
long i,j,k,m,n;
long alen,blen,clen;
gets(s);
alen=strlen(s);
for(i=alen-1;i>=0;i--)
a[alen-i]=s[i]-'0';
gets(s);
blen=strlen(s);
for(i=blen-1;i>=0;i--)
b[blen-i]=s[i]-'0';
if(alen>blen)
clen=alen;
else
clen=blen;
for(i=1;i<=clen;i++)
c[i]=a[i]+b[i];
for(i=1;i<=clen;i++)
if(c[i]>9){
c[i+1]++;
c[i]-=10;
if(i==clen)
clen++;
}
for(i=clen;i>=1;i--)
printf("%d",c[i]);

printf("\n");
return 0;
}
全部回答
首先 严格来说 不可能出现任意长度。 内存是有限的 超出一定长度后,不可能存的下,虽然这个值可能是超级大的,但总有限度。 其次,所谓的任意长度,其实就是可变长数组。 那么,在事先不知道数组规模下,就要靠输入,来确定数组大小了。 重点在于,要开辟多大的数组来存 一般有这么几种情况 1 直接开一个足够大的。 比如 虽然不知道有多大,但最大不超过1000个,那就可以直接开个1000元素的数组。 2 动态分配, 使用malloc动态分配内存。 当出现可能的不够情况,用realloc重新分配。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
表达爱情的诗句红豆,描写红豆的诗句有哪些?
你看那弯弓射鸟的画像石,你看那长袖善舞的陶
亚布力供电营业厅地址在哪,我要去那里办事
地下顶板的防水什么时候做比较好
计算:|-2|.
含[夕今]的古诗佳句
谢氏口腔诊所这个地址在什么地方,我要处理点
小米手机有哪些型号图片
夸香港代购的好的句子,淘宝上买的耐克 卖家说
单选题某同学用40N的力把重5N的足球踢到10m高
OPPO R6007 有什么好玩的功能
不是说热胀冷缩吗?为什么0摄氏度以下的冰的
昆明哪个区好找工作,昆明找工作哪些地方好找
东来顺饭庄(霄云路店)我想知道这个在什么地方
济宁嘉祥到梁宝寺多少钱
推荐资讯
有时候累了,眼前突然变黑了,但是过一会又好了
黄历里的“煞?,冲?”是什么意思?比如“煞
单人相声台词大全,李金斗说的那个相声润八月
万里长城和金戈铁马哪个服务器好
不幸福的生活,改变不了,为什么还要继续呢?
什么叫骑式按摩
为什么哦飞机和船移到海上的毒物大山脚就会消
安阳市人民检察院行政执法与刑事司法联系工作
中央电视台每天的空气质量报告中,不包括下列
鸠形鹄面是什么意思,鸠形鹄面的意思
小学生不上学以后能干什么?
宜黄县二都镇地址在什么地方,想过去办事
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?