gpt4 book ai didi

c++ - 函数中的数组

转载 作者:行者123 更新时间:2023-11-28 08:18:28 26 4
gpt4 key购买 nike

我正在尝试编写一个程序,将用户输入的两个数字作为字符串....如果第一个数字大于第二个数字,则将它们相乘并返回结果...我将输入的数字转换为字符数组,然后使用 ascii 代码将字符转换为实际数字...然后我对数字进行了计算...这是我使用的函数...

double greater1(char a[],char b[],int size1,int size2)//the arrays here are those containing the two numbers
{ double first;
double second;
for(int i=0;i<size1;i++)
first=first+(pow(10.0,(double)(size1-i-1))*(a[i]-48));
for(int i=0;i<size2;i++)
second=second+(pow(10.0,(double)(size2-i-1))*(b[i]-48));
return(first>second?first:second);
}

double smaller1(char a[],char b[],int size1,int size2)
{ double first;
double second;
for(int i=0;i<size1;i++)
first=first+(pow(10.0,(double)(size1-i-1))*(a[i]-48));
for(int i=0;i<size2;i++)
second=second+(pow(10.0,(double)(size2-i-1))*(b[i]-48));
return(first<second?first:second);
}

double multiply(char a[], char b[],int size1,int size2)
{double first=greater1(a,b,size1,size2);
double second=smaller1(a,b,size1,size2);
//cout<<second;....(a)
//cout<<smaller1(a,b,size1,size2);....(b)
//cout<<smaller1(a,b,size1,size2);....(c)
//cout<<smaller1(a,b,size1,size2);....(d)
double mult=first*second;
return mult;
}

现在为了测试这些功能,我输入了 43 和 10...但是返回的产品是 860...所以为了找到错误,我插入了行 (a)、(b)、(c)、(d )...(a) 给出了输出 20,(b) 给出了 30,之后所有其他行 (c),(d)... 都给出了输出 10...当我插入

cout<<smaller1(arr1,arr2,ln1,ln2);//these parameters were the ones also passed to the above three functions             

在 main() 中,每次我得到输出 10....所以在 multiply func 中使用 smaller1() 一定有问题...请问谁能指出这个问题

最佳答案

其实很简单:您还没有在 smaller1 和 greater1 中初始化 first 和 second。局部变量永远不会被隐式初始化。

关于c++ - 函数中的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6805108/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com