2015-10-28 4 views
-2

Я хочу сделать этот код, который сообщает вам число (n) целых чисел, которые больше (или равны), чем вход (k).Найти количество наибольших целых чисел в N целых чисел в C

Так, например:

input: 
4 15 
12 
6 
15 
24 

output: 
2 

Так что 4 это количество целых чисел, пользователь собирается ввести и 15 является к числу, то теперь выход количество чисел, которые больше, чем к ,

Что я имею код это:

#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; 
} 

Как вы можете видеть, что мой код отстой, я не знаю, как найти целые числа, которые больше, чем к и напечатать количество, а не сами цифры. Любая помощь действительно умиротворена. Благодарю.

+0

Вам необходимо узнать, как отступать код. Выберите стиль кодирования и оставайтесь с ним – JackVanier

+0

Да, я его отредактировал, он больше или равен k – Redspark77

+0

@JackWilliams Я понимаю, но я очень к этому не знаком. :/ – Redspark77

ответ

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 
} 

Кроме того, я бы переименовывать переменные к чему-то более значимое, например, как numEntries, checkValue и т.д.

+0

Это сработало! Большое спасибо. Один вопрос, как счетчик работает над кодом без использования другого? Извините, если это глупый вопрос, я просто новичок в этом. И еще раз спасибо. – Redspark77

+0

Не уверен, что я понимаю. ++ - оператор автоматического инкремента. Таким образом, он добавляет 1 к существующему значению счетчика каждый раз, когда выполняется условие (c> k). Потратьте некоторое время на изучение использования отладчика и выполните код, чтобы узнать, что произойдет. – OldProgrammer

2

Гораздо менее элегантное решение, но один, который сохраняет значение, необходимое для некоторых далее использование .. 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; 
} 
Смежные вопросы