gpt4 book ai didi

c - 帕斯卡三角程序不起作用

转载 作者:行者123 更新时间:2023-11-30 16:50:15 25 4
gpt4 key购买 nike

尽管我之前已经接触过相当多的 Java,但我对 C 还很陌生。我正在制作一个基本的帕斯卡三角程序,我已经研究了一个小时试图让它工作。所有的逻辑对我来说似乎都是正确的,但在我意识到出了什么问题之前我可能会死。程序如下:

#include <stdio.h>
#include <stdlib.h>
double fact(int num);

int main()
{
int row_index = 0;
printf("Enter the row index : ");
scanf("%d",&row_index);
printf("\n");
int i;
double output1 = 0;
double output2 = 0;
double output3 = 0;
double output4 = 0;
double output5 = 0;
int output6 = 0;
for(i = 0; i <= (row_index + 1); i++)
{
output1 = fact(row_index);
output2 = fact(i);
output3 = row_index - i;
output4 = fact(output3);
output5 = output1 / (output2 * output4);
output6 = (int)(output5);
printf("%i ",output6);
}
return 0;
}

double fact(int num)
{
double result;
int i;
for(i = 1; i <= num; ++i)
{
result = result * i;
}
return result;
}

编译器没有给我任何错误,每次我输入一个数字时,它都会将其作为输出:

Enter the row index : 6

-2147483648 -2147483648 -2147483648 -2147483648 -2147483648 -2147483648 -2147483648 -2147483648

最佳答案

doublefact(int num)中,变量result应该显式初始化。另外,我建议您将函数和变量 result 的返回值定义为 int 类型。

参见(Why) is using an uninitialized variable undefined behavior? .

关于c - 帕斯卡三角程序不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42262060/

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