c - 任意特定整数 c 程序
问题描述
所以,最近我问了关于任意特定整数计算器程序的问题。它扫描两个字符串,应该计算它的和和差、乘法、除法和模数。到目前为止,我认为我真的很接近完成求和差和乘法函数。这是我的代码对于添加功能的样子:
void sum(char* a, char* b)
{
//initializing values
int len1,len2,i;
int carry=0;
char *r;
// counting the digits
len1=strlen(a);
len2=strlen(b);
// checking which array is longer
if (len1>=len2)
{
// if first array is longer we allocate enough memory for the result
r=(char*)malloc((len1+1)*sizeof(char));
// starting from the LSB
for (i=0; i<=len2; ++i)
{ // mod 10 to extract only the last digit of the sum
// that becomes our new digit
*(r+len1-i)=(*(a+len1-i) + *(b+len2-i) + carry)%10;
carry=(*(a+len1-i)+*(b+len2-i))/10;
}
// copying the rest of the digits
for (i=len2+1; i<=len1; ++i)
*(r+len1-i)=*(a+len1-i);
}
//case when the other number has more digits
else
{
r=(char*)malloc((len2+1)*sizeof(char));
for (i=0; i<=len1; ++i)
{
*(r+len2-i)=(*(a+len1-i)+*(b+len2-i)+carry)%10;
carry=(*(a+len1-i)+*(b+len2-i))/10;
}
for (i=len1+1; i<=len2; ++i)
*(r+len2-i)=*(b+len2-i);
}
// printing the result
printf("The result is: \n %s \n", r);
}
问题是当我尝试在 main 中调用函数时,最终结果只会给出错误,即使在编译代码时没有任何错误。这可能是 main 的问题,所以这就是我的 main 的样子。
int main()
{
FILE *fp;
char *fi=NULL, *se=NULL;
char o;
int i=0;
fp= fopen("/CalculatorHistory.txt", "r+");
opening();
fi=(char*)malloc(60*sizeof(char));
se=(char*)malloc(60*sizeof(char));
while(i<2)
{
first();
scanf("%s", fi);
// I am not sure when im saving pointer arrays, if it works like this
// or i should save it in a for loop
fprintf(fp, fi);
oper();
scanf(" %c", &o);
fprintf(fp, o);
second();
scanf("%s", se);
fprintf(fp, se);
switch (o)
{
case '+':
sum(fi, se);
case '-':
sub(fi, se);
case '*':
mul(fi, se);
case '/':
div(fi, se);
case '%':
mod(fi, se);
}
}
return 0;
}
我希望有人能帮助我。我很迷茫,对c编程仍然很陌生。
解决方案
推荐阅读
- android - 如果他进入后台或在不活动几分钟后如何从 android 应用程序中注销用户
- php - php - 如果第一个值具有匹配的字符串,则增加数组的第二个值
- python - 机器人框架:UnboundLocalError:分配前引用的局部变量“cellValue”
- wso2 - WSO2 SAP 适配器:无法在 BAPI RFC 调用中发送表数据
- javascript - 如何在悬停时检测上一个元素
- php - Laravel 生成用户数据
- tfs - 从 powershell 中删除 TFS 代理
- excel - Excel:显示空白单元格地址
- scala - java.lang.StringIndexOutOfBoundsException:字符串索引超出范围:0
- node.js - 期望 catch() 或即使在返回结果后也返回