我正在学习 C 和 C# 编程。此 C 代码未按预期计算。该方法返回值:-504476904 到控制台?这可能是什么问题?
代码如下:
#include <stdio.h>
#include <stdlib.h>
int minimum(values)
int values[10];
{
int minimum_value, i;
minimum_value = values[0];
for (i = 1; i < 10; i++)
{
if(values[i] < minimum_value)
{
minimum_value = values[i];
}
}
return (minimum_value);
}
int main()
{
int sumthing[10];
int i;
for (i = 1; i < 10; i++)
{
sumthing[i] = (i * 34);
}
printf("Minimum value of for loop is: %d\n", minimum(sumthing));
return 0;
}
我将我的代码更改为:
#include <stdio.h>
#include <stdlib.h>
int minimum(values)
int values[10];
{
int minimum_value, i;
minimum_value = values[0];
for (i = 1; i < 10; i++)
{
if(values[i] < minimum_value)
{
minimum_value = values[i];
}
}
return (minimum_value);
int main()
{
int sumthing[10];
int i;
for (i = 0; i < 10; i++)
{
sumthing[i] = ((i + 1 )* 34);
}
printf("Minimum value of for loop is: %d\n", minimum(sumthing));
return 0;
最佳答案
sumthing[0]
未在您的代码中初始化,因为您从索引 1 开始循环;这是在 main
函数中纠正程序的第一步:
for (i = 0; i < 10; i++)
{
sumthing[i] = (i * 34);
}
顺便说一句,您使用的是 K&R 风格。这被认为已过时。
您的代码的更现代的实现,并进行了上述更正;它似乎在工作:
#include <stdio.h>
int minimum(int values[])
{
int minimum_value, i;
minimum_value = values[0];
for (i = 1; i < 10; i++)
{
if(values[i] < minimum_value)
{
minimum_value = values[i];
}
}
return (minimum_value);
}
int main()
{
int sumthing[10];
int i;
for (i = 0; i < 10; i++)
{
sumthing[i] = (i * 34);
}
printf("Minimum value of for loop is: %d\n", minimum(sumthing));
return 0;
}
关于c - 返回错误值的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19758683/