使用指针时遇到麻烦

兰斯厅

我在掌握指针的概念时遇到了麻烦。我遇到了以下问题。

N的平方根可以通过使用公式NG = 0.5(LG + N / LG)重复计算来近似得出,其中NG代表下一个猜测,LG代表最后一个猜测。编写使用此方法计算数字平方根的函数。最初的猜测将是LG的起始值。程序将使用给定的公式计算NG的值。检查NG和LG之间的差异,以查看这两个猜测是否几乎相同。如果是,则将NG视为平方根。否则,下一个猜测(NG)变为最后一个猜测(LG),然后重复该过程(为NG计算另一个值,检查差异,依此类推)。应该重复循环,直到差值小于0.005。使用初始猜测值1.0。

必须在主函数和所有函数中都尽可能使用指针编写程序。在main中声明指针,以猜测要猜测其平方根的数字,并在函数中声明近似的平方根答案,该答案将被计算并返回/返回给main。该函数将是一个void函数,因此必须将近似的平方根答案作为函数的输出参数返回/引用给main,即函数调用语句中的参数。您必须使用指针将要猜测的数字的实际值传递给函数。

在函数中,让用户输入“猜测”数字,这是用户对传递给函数的数字平方根的初始猜测。

(对冗长的解释感到抱歉,我觉得我应该周全)

我写了以下代码:

#include <stdio.h> 
#include <math.h> 

void fctn(double *nPtr,double *NGPtr){  
    double n;
    nPtr=&n;
    double NG;
    double LG;
    NGPtr=&NG;

    printf("Enter guess\n");
    scanf_s("%lf",&LG);

    do{
        NG=(.5*(LG+n/LG));
        LG=NG;
    }while(fabs(NG*NG-n)>.005);
}

int main(){
    double *NGPtr;
    double *nPtr;

    printf("Enter number\n");
    scanf_s("%lf",&nPtr);

    fctn(NGPtr,nPtr);
    double root=*NGPtr;
    printf("The approximate root of the function is %f",root);
}

我想知道是否有人对它为什么不起作用有任何想法?感谢您的阅读。

约瑟夫·曼斯菲尔德
double *nPtr;

printf("Enter number\n");
scanf_s("%lf",&nPtr);

让我们看看这里发生了什么。首先,您声明一个指向的指针double该指针没有指向任何地方。没有double创建任何对象,只有一个指针。然后&nPtr,将指向指针的指针传递到scanf_s,尝试将值读入指针。因此,您要让用户输入一个内存地址!那是不对的。

相反,您想要的是拥有一个double您随后要读入对象。为此,您应该声明一个double(不是指针),然后将指向该指针的指针传递doublescanf_s

double n;

printf("Enter number\n");
scanf_s("%lf", &n);

您也有类似的问题NGptr它应该只是一个double NG;代替。否则,当您这样做时*NGPtr,将取消引用不指向任何内容的指针。

我相信您随后会将您的论点传递给fctn错误的途径。宣言建议n应该先走,然后NG再走。

由于您只需要使用n函数内部的值,因此应按值传递它:

void fctn(double n, double *NGPtr){ 

需要传递一个指向的指针,NG因为您希望在函数内部对其进行修改,但是引用类型会更好:

void fctn(double n, double& NG){

然后,您会在开始时遇到一系列问题fctn您不再需要创建nNG doubles了,因为我们正在将它们传递给函数。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

C ++在存储指针元组时遇到麻烦

来自分类Dev

我在使用某些指针时遇到麻烦,调试结束时访问位置失败

来自分类Dev

将指针存储在指针数组中时遇到麻烦

来自分类Dev

指针遇到麻烦

来自分类Dev

在返回模板化的结构对象指针时遇到麻烦

来自分类Dev

在解释这个处理指针的C示例时遇到麻烦

来自分类Dev

使用Javascript要求AWS时遇到麻烦

来自分类Dev

在getElementById内使用变量时遇到麻烦

来自分类Dev

使用多个对象时遇到麻烦

来自分类Dev

使用fmod设置setMusicSpeed()时遇到麻烦

来自分类Dev

在使用javascript sort()命令时遇到麻烦

来自分类Dev

Laravel PHP:使用nest()时遇到麻烦

来自分类Dev

使用Jsoup登录网站时遇到麻烦,

来自分类Dev

我在使用BaseAdapter时遇到麻烦

来自分类Dev

使用PHPunit测试代码时遇到麻烦

来自分类Dev

分页时遇到麻烦

来自分类Dev

使用Github遇到麻烦

来自分类Dev

使用XPATH遇到麻烦

来自分类Dev

在使用解析时使用nil可选遇到麻烦

来自分类Dev

使用指针时遇到困难

来自分类Dev

Tilde〜在Mac上使用fstream时遇到麻烦

来自分类Dev

使用Swift初始化属性时遇到麻烦

来自分类Dev

使用多索引处理日期索引时遇到麻烦

来自分类Dev

使用ActionListener更改变量时遇到麻烦

来自分类Dev

使用Crypto ++解密格式正确的密文时遇到麻烦

来自分类Dev

使用类型变量显式指定类型时遇到麻烦

来自分类Dev

我在使用doGet和doPost方法时遇到麻烦

来自分类Dev

在使用umano android slideuppanel 2时遇到麻烦

来自分类Dev

使用div创建盒子阴影类型效果时遇到麻烦