我的程序一直在崩溃.这些代码似乎合法且正确.不知道有什么问题.
#include <stdio.h>
void queue(int length,int turns){
int permutations,totalTurns;
turns++;
if (length>0){
queue(length-1,turns);
if (length>1){
queue(length-2,turns);
}
}
else{
permutations++;
totalTurns+=turns;
}
}
int main()
{
while(true){
int length;
float average;
int permutations=0;
int totalTurns=0;
printf("Queue length: ");
scanf("%d", &length);
queue(length,-1);
average=totalTurns/permutations;
printf("The average turns are %f", average);
}
}
Run Code Online (Sandbox Code Playgroud)
int permutations=0;
average=totalTurns/permutations;
Run Code Online (Sandbox Code Playgroud)
你除以零.
请注意,permutations您声明的变量与中的变量main()不同queue().
您应该permutations从中返回值queue(),如下所示:
int queue(int length,int turns){
int permutations = 0;
...
return permutations;
}
int main(void) {
...
int permutations = queue(length,-1);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
221 次 |
| 最近记录: |