gpt4 book ai didi

c++ - 从 ‘int (*)(int)’ 到 ‘int’ 错误的无效转换?

转载 作者:太空宇宙 更新时间:2023-11-04 15:26:49 25 4
gpt4 key购买 nike

我正在学习 C++,其中一个程序是用于随机数生成器的。
编写程序后出现以下错误:

dice.cpp: In function ‘int main()’:
dice.cpp:18: error: pointer to a function used in arithmetic
dice.cpp:18: error: invalid conversion from ‘int (*)(int)’ to ‘int’

这是我的代码:

#include<iostream>
#include<cmath>
#include<stdlib.h>
#include<time.h>
using namespace std;
int randn(int n);
int main()
{
int q;
int n;
int r;
srand(time(NULL));
cout<<"Enter a number of dice to roll: ";
cin>>n;
cout<<endl;

for (q=1; q<=n; q++)
{
r=randn+1; // <-- error here
cout<<r<<endl;
}
return 0;
}

int randn(int n)
{
return rand()%n;
}

可能是什么问题?

最佳答案

我相信你的问题是这一行:

r=randn+1;

我相信你是想写

r = randn(/* some argument */) + 1; // Note parentheses after randn

问题是您正在尝试调用该函数,但忘记放入括号中以指示您正在调用。由于您正在尝试掷六面骰子,因此这可能应该是

r = randn(6) + 1;

希望这对您有所帮助!

关于c++ - 从 ‘int (*)(int)’ 到 ‘int’ 错误的无效转换?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7032274/

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