我认为这是一个简单的错误,但我是初学程序员,所以也许可以帮助我?这是我的主要,我称之为Askdisksfunction并给它numberofdisks的地址。当我运行程序时,没有任何事情发生。我希望有人可以帮助我吗?
int main()
{
int numberofdisks;
Askdisks(&numberofdisks);
printf("%d", numberofdisks);
return 0;
}
void Askdisks(int *pNumberofdisks)
{
int vraagdisks = 0;
printf("How much disks does the tower has to have?(max 16)\n");
scanf("%d", &vraagdisks);
if(vraagdisks < 17 && vraagdisks > 0)
{
*pNumberofdisks = vraagdisks
}
else if(vraagdisks == 0)
{
printf("Stopping function\n");
*pNumberofdisks = 0;
}
else if(vraagdisks > 16 || vraagdisks < 0)
{
printf("That is not a valid number of disks! Try again...\n");
Askdisks(numberofdisks);
}
}
答案 0 :(得分:2)
您的程序有一些错误,从技术上讲无法编译。这并没有解释你是如何运行它但“没有任何反应”。但是,修复它们会使程序执行您正确描述的内容。
for(var i = 0; i < data.length; i++){
username = data[i].username;
console.log(username);
usersurname = data[i].usersurname;
cellnumber = data[i].cellnumber;
displayname = data[i].displayname;
profilepicture = data[i].profilepicture;
for(var j = 0; j < data[i].projects.length; j++){
dateadded = data[i].projects[j].dateadded;
console.log(dateadded);
notes = data[i].projects[j].notes;
image = data[i].projects[j].image;
for(var k = 0; k < data[i].projects[j].task.length; k++){
taskname = data[i].projects[j].task[k].taskname;
console.log(taskname);
taskdescription = data[i].projects[j].task[k].taskdescription;
taskimage = data[i].projects[j].task[k].taskimage;
}
}
}
或移动其定义。Askdisks
内的语句末尾缺少分号。if
时,请为其指定相同的pointe而非未知标识符。Askdisks
答案 1 :(得分:1)
您的程序无法编译。 原因有两个:
1。*pNumberofdisks = vraagdisks
缺少;
2。Askdisks(numberofdisks);
numberofdisks
中声明了 main
,因此您在numberofdisks undeclared
函数中收到错误Askdisks
。
相反,您应该将该行更改为:
Askdisks(pNumberofdisks);
答案 2 :(得分:0)
首先,第一个条件“if”的陈述中缺少一个分号。
第二,你递归调用函数的最后一个“else if”语句,但是你给它一个在其范围内不存在的变量。
当你在main()函数中第一次调用函数时,有一个名为numberofdisks
的变量。
但是在您的函数中没有包含相同名称的变量,但是有另一个值保持相同的值pNumberofdisks
。
解决问题的方法就是用
Askdisks(pNumberofdisks);
请注意,我们使用Askdisks(pNumberofdisks);
而不是Askdisks(*pNumberofdisks);
。
因为Askdisks函数将指向整数的指针作为参数,pNumberofdisks
是指向int的指针,而*pNumberofdisks
是指向int的指针。