【问题标题】:Find Quantity of Biggest integers in N integers in C查找 C 中 N 个整数中最大整数的数量
【发布时间】:2015-10-28 01:17:09
【问题描述】:

我想做这段代码,告诉你大于(或等于)一个 (k) 输入的 (n) 个整数的数量。

例如:

input:
4 15
12 
6 
15
24

output:
2

所以 4 是用户要输入的整数个数,15 是第 k 个数,现在输出是大于 k 的数字个数。

我的代码是这样的:

#include<stdio.h>

int main()
{
    int n, k, i;
    int c, d;     
    scanf(" %d",&n);
    scanf("%d", &k);

    for(i=1;i<=n;i++)
    {
        scanf("%d",&c);
        if (c[i]>k)
            c[i]=d;
    }
    printf("%d", d);      
    return 0;
}

您可以看到我的代码很糟糕,我不知道如何找到大于 k 的整数并打印数量,而不是数字本身。任何帮助真的很感激。谢谢。

【问题讨论】:

  • 你需要学习如何缩进代码。选择一种编码风格并坚持下去
  • 是的,我编辑了它,它大于或等于 k
  • @JackWilliams 我明白,但我对此很陌生。 ://
  • 我在尝试编译时遇到编译器错误。您是否尝试过先解决这些问题?
  • @Evert 公平地说,一个帖子或评论说“我收到错误”而不列出任何内容并不是很有用。建议列出至少一个错误。

标签: c arrays algorithm int stdio


【解决方案1】:

远没有那么优雅的解决方案,但可以保留您进一步使用所需的价值。OldProgrammer 做得更简单,更漂亮。

int main()
{   
  int num, s, i, cnt = 0;
  printf("please input number of integers and int to compare with\n");
  scanf("%d %d", &s, &num);
  int arr[s];
  for(i = 0; i < s; i++)
  {
    printf("Please input %d. number", i+1);  
    scanf("%d", &arr[i]);
  }

  for(i = 0; i < s; i++)
  {
    if(arr[i] >= num)
      cnt++;
  }
   //at this point cnt holds the value you need

  return 0;
}

【讨论】:

    【解决方案2】:

    不确定您为什么尝试将 c 作为数组引用。那是不需要的。试试这个:

    int main() 
    {
       int n, k, i, c;
       int count = 0;
    
       scanf(" %d",&n);
       scanf("%d", &k);
    
       for(i=1;i<=n;i++)
       {
         scanf("%d",&c);
         if (c > k)
           count++;
       }
    
       printf("%d", count); 
       return 0
    }
    

    另外,我会将您的变量重命名为更有意义的名称,例如 numEntriescheckValue 等。

    【讨论】:

    • 成功了!非常感谢。一个问题,count++ 如何在不使用另一个 for 的情况下处理代码?对不起,如果这是一个愚蠢的问题,我只是新手。再次感谢。
    • 不确定我是否理解。 ++ 是自增运算符。因此,每次满足条件 (c>k) 时,它都会在 count 的现有值上加 1。花一些时间学习如何使用调试器,并单步调试代码,看看会发生什么。
    猜你喜欢
    • 2015-07-04
    • 1970-01-01
    • 1970-01-01
    • 2016-05-25
    • 2015-06-07
    • 2018-08-27
    • 2015-10-30
    • 2012-09-04
    • 2022-11-19
    相关资源
    最近更新 更多