我正在做一个简单的函数,它返回用户(数组)给出的数字的最小整数。
但是,它总是在末尾打印 2686916
。这是我的代码:
int function()
{
int ar[100];
int i;
int smallest = INT_MAX;
int nums;
int num;
int sum=0;
printf("\nenter array size\n");
scanf("%d",&num);
for(i=0;i<num;i++)
{
scanf("%d",&ar[i]);
sum=sum+ar[i];
}
if (nums <smallest){
smallest=nums;
printf("the smallest %d\n,smallest);
return 0;
}
}
我不确定我做错了什么。
最佳答案
我的 friend ,看来您是 C 语言新手,在您提出此类问题之前,您应该尝试遵循一些 C 教程。您可以尝试类似 this 的内容。 。
如果您提出的问题不清楚,或者您发布的代码无论如何都无法编译,那么很难帮助您。目前我能做的就是:
int function()
{
int ar[100];
int i;
int smallest = INT_MAX;
int nums = 0; //Always Initialize your variables!
int num = 0;
int sum= 0;
printf("\nenter array size\n");
scanf("%d",&num);
for(i=0;i<num;i++)
{
scanf("%d",&ar[i]);
sum=sum+ar[i];
}
if (nums <smallest)
{
smallest=nums;
printf("the smallest %d\n",smallest);
}
return 0; //Don't put this in a place that might not be executed!
}
现在它至少应该可以编译,但据我所知,它仍然没有做任何有用的事情。您将以前没有使用过的变量“nums”与 int 的最大值进行比较,将其设置为从未使用过的“nums”并打印它。
您可能希望在 if 语句中使用“sums”或“ar[i]”,并打印这些值之一。(仍然不能 100% 确定您想要做什么)。
下次的一些提示(在提问之前!):
- 变量应始终初始化
在代码中,您尝试在获取值之前使用“nums”的值,这可能会导致代码中出现错误或奇怪的结果。
- 不要将回车符放在可能被跳过的地方,
在您的代码中,“nums”将大于“smallest”(不太可能,例如位),代码将跳过 if 语句并且永远不会到达返回值。
- 阅读编译器警告
您发布的代码无法编译、读取错误和警告并修复它们。
- (提示)使用更好的变量名称,使用 nums、num 和 sum 等名称可以很容易地忽略错误。
关于C 最小函数总是返回 2686916,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32428940/