Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/161.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 无法理解错误原因非法使用指针? #包括 #包括 #包括 使用名称空间std; void main() { 双b[1000],mxrs[1000],mnrs[1000],ls[1000];整数t,i; clrsc(); cin>>t; 对于(i=0;i>b[i]>>ls[i]; 对于(i=0;i_C++_Arrays_Pointers - Fatal编程技术网

C++ 无法理解错误原因非法使用指针? #包括 #包括 #包括 使用名称空间std; void main() { 双b[1000],mxrs[1000],mnrs[1000],ls[1000];整数t,i; clrsc(); cin>>t; 对于(i=0;i>b[i]>>ls[i]; 对于(i=0;i

C++ 无法理解错误原因非法使用指针? #包括 #包括 #包括 使用名称空间std; void main() { 双b[1000],mxrs[1000],mnrs[1000],ls[1000];整数t,i; clrsc(); cin>>t; 对于(i=0;i>b[i]>>ls[i]; 对于(i=0;i,c++,arrays,pointers,C++,Arrays,Pointers,ls,bs表示数组的基址。因此,它们是地址而不是值。我想这就是您要做的 #include <iostream> #include <conio> #include <math> using namespace std; void main() { double b[1000], mxrs[1000],mnrs[1000], ls[1000]; int t, i; clrscr()

ls,bs
表示数组的基址。因此,它们是地址而不是值。我想这就是您要做的

   #include <iostream>
    #include <conio>
    #include <math>

    using namespace std;

    void main()
    {
        double b[1000], mxrs[1000],mnrs[1000], ls[1000]; int t, i;
        clrscr();
        cin>>t;
        for(i=0;i<t;i++)
        cin>>b[i]>>ls[i];
        for(i=0;i<t;i++)
        {
            mxrs[i]=sqrt(ls*ls+b*b);
            mnrs[i]=sqrt(ls*ls-b*b); cout<<mnrs[i]<<' '<<mxrs[i]<<'\n';
        }
        getch();
    }
#包括
#包括
#包括
使用名称空间std;
void main()
{
双b[1000],mxrs[1000],mnrs[1000],ls[1000];整数t,i;
clrsc();
cin>>t;
对于(i=0;i>b[i]>>ls[i];

对于(i=0;i当您写入
double b[1000]
时,您可以通过写入
b[n]
*(b+n)
来访问数组元素,注意将
n
保持在数组的范围内

因此
*b
b[0]
是等价的。换句话说,
b
是指向数组第0个元素的指针。编写
b*b
是尝试将两个指针相乘,这是没有意义的。这是编译器告诉您的

要将数组的元素相乘,请使用
b[n]*b[m]
*(b+n)**(b+m)


(并修复
main
的返回类型:它应该是
int
)你把
#include
放进去,它应该是
#include
都放进去了。你忘记了
.h

b*b
应该做什么?
b
是一个数组。嗯,你引用的是
ls
b
,就好像它们都是数字一样;你需要添加一个index到每个引用。你的main的返回类型已经错误了什么是“#include”?你可能想使用“cmath”。我当时是一个noob,没有看到这是一个如此愚蠢的问题。现在回头看,我很惭愧。请阅读问题标签。这是一个
C++
问题,在包含允许使用标题。
#include <iostream>
#include <conio>
#include <math>

using namespace std;

void main()
{
    double b[1000], mxrs[1000],mnrs[1000], ls[1000]; int t, i;
    clrscr();
    cin>>t;
    for(i=0;i<t;i++)
    cin>>b[i]>>ls[i];
    for(i=0;i<t;i++)
    {
        mxrs[i]=sqrt(ls[i]*ls[i]+b[i]*b[i]);
        mnrs[i]=sqrt(ls[i]*ls[i]-b[i]*b[i]); cout<<mnrs[i]<<' '<<mxrs[i]<<'\n';
    }
    getch();
}
int a[5]={1,2,3,4,5};
cout<<*a; //prints the value at base address which is 1 as a refers to a[0]
cout<<a[0]; //prints 1 
cout<<*(a+1); //prints 2 ... as a+1 refers to the address next to its base which is a[1] and which is 2   
cout<<a[1];//prints 2