C 最小函数总是返回 2686916

标签 c arrays function min

我正在做一个简单的函数,它返回用户(数组)给出的数字的最小整数。

但是,它总是在末尾打印 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/

相关文章:

c - 如何使用指针和动态内存添加新的新结构学生

c - 简单函数 C 中的时间限制超出错误

c++ - 如何使用 C++ 中的函数永久更改类属性值?

c - 在linux中使用execv使用 './'命令

c - 从串行读取数据 block 是否比一次读取 1 个字符更快?

c - 如何打乱矩阵

java - 我如何在Java中解析这些元素

c - 如何正确使用 recv() 系统调用

c - 查找重复项和次数

arrays - python中有可变的二进制数组吗?