#include <stdio.h>
#include <stdlib.h>
typedef struct{
char num[2000];//大数
int count;//大数的位数
}data;
int main(void){
data multi(data temp,int elementx);
data temp={{'0','0','5'},3};
int i;
temp=multi(temp,3);
for(i=temp.count-1;i>=0;i++)
printf("%c",temp.num[i]);
return 0;
}
data multi(data temp,int elementx){
int i,t;
data tempx={{0}};
for(i=0;i<temp.count;i++){
t=(temp.num[i]-'0')*elementx;
tempx.num[i]+=(t%10+'0');
tempx.num[i+1]+=t/10;
if(i==temp.count-1&&t/10>0){
temp.count++;
tempx.num[i+1]+='0';
}
}
tempx.count=temp.count;
return tempx;
}
这写的是一个个位数与一个大数相乘的程序,想了半天不知道哪里错了
能帮帮忙看看这几行代码怎么错了吗?
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
1条回答 默认 最新
- Pliosauroidea 2021-08-21 17:33关注
#include <stdio.h> #include <stdlib.h> typedef struct { char num[2000]; //大数 int count; //大数的位数 } data; int main(void) { data multi(data temp, int elementx); data temp = {{'0', '0', '5'}, 3}; int i; temp = multi(temp, 3); for (i = temp.count - 1; i >= 0; i--) printf("%c", temp.num[i]); return 0; } data multi(data temp, int elementx) { int i, t; data tempx = {{0}}; for (i = 0; i < temp.count; i++) { t = (temp.num[i] - '0') * elementx; tempx.num[i] += (t % 10 + '0'); tempx.num[i + 1] += t / 10; if (i == temp.count - 1 && t / 10 > 0) { temp.count++; tempx.num[i + 1] += '0'; break; } } tempx.count = temp.count; return tempx; }
输出循环i--写成i++了
最高位处理有点问题我也改了一下
有帮助望采纳本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 lammps拉伸应力应变曲线分析
- ¥15 C++ 头文件/宏冲突问题解决
- ¥15 用comsol模拟大气湍流通过底部加热(温度不同)的腔体
- ¥50 安卓adb backup备份子用户应用数据失败
- ¥20 有人能用聚类分析帮我分析一下文本内容嘛
- ¥15 请问Lammps做复合材料拉伸模拟,应力应变曲线问题
- ¥30 python代码,帮调试,帮帮忙吧
- ¥15 #MATLAB仿真#车辆换道路径规划
- ¥15 java 操作 elasticsearch 8.1 实现 索引的重建
- ¥15 数据可视化Python