Форум программистов, компьютерный форум, киберфорум
C для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
Другие темы раздела
C (СИ) Вывести массив на экран из подпрограммы https://www.cyberforum.ru/ c-beginners/ thread714091.html
Помогите вывести, пожалуйста, и посмотрите, правильно ли я подрограмму написал? #include <stdio.h> #include <stdlib.h> #include <time.h> int f(int N) { int i; srand(time(NULL)); for (i=0; i<70; i++)
Простая программа работы с графикой в С. Черное на белом C (СИ)
Код программ идентичен за исключением 10ой строки. Первая программа выводит на экран окружность на белом фоне. Вторая - нет, только белый фон. Почему так? Работаю в Turbo C через DosBox. #include <graphics.h> #include <conio.h> main() {
C (СИ) Определить, сколько раз в написании числа N встречается цифра 5 https://www.cyberforum.ru/ c-beginners/ thread714015.html
Определить, сколько раз в написании введенного с клавиатуры натурального числа N встречается цифра 5.
C (СИ) Вычислить значение функции https://www.cyberforum.ru/ c-beginners/ thread713975.html
Помогите написать блок схему и код программы
C (СИ) В третем массиве росположить самые большие элементы двух ранних массивов
даны два одномерных массива из двух массивов сделать третий, в третем массиве росположить самые большие элементы двух ранних массивов как?
C (СИ) Переделать С++ в С #include <iostream> using namespace std; int NOD(int x, int y) { if (x != 0) return NOD(y%x,x); else return y; } https://www.cyberforum.ru/ c-beginners/ thread713712.html
C (СИ) Создать условие в цикле Здравствуйте!!! Помогите создать условие в цикле, решение очевидно очень простое, но я только-только начал все изучать! Есть к примеру цикл int acc; acc=0; while (TRUE) { acc+=1; } https://www.cyberforum.ru/ c-beginners/ thread713668.html Скан портов C (СИ)
программа выдает только "Scanning: " и через несколько секунд завершается, больше ничего не выдавая +нужно добавить использование асинхронного ввода-вывода, чтобы программа порты просматривала сразу пачками #include <stdio.h> #include <stdlib.h> #include <sys/types.h> #include <sys/socket.h> #include <netinet/in.h> #include <netdb.h> #include <string.h>
C (СИ) Создать функцию возвращаемым значением которой является квадратная матрица https://www.cyberforum.ru/ c-beginners/ thread713521.html
Помогите, сижу на зачете, хз в чем ошибка создать функцию возвращаемым значением которой является квадратная матрица размером 5 а значения элементов равны сумме соотв. индексов. С помощью этой функции создать и напечатать матрицу #include <stdio.h> #include <stdlib.h> int i=0,j=0,a=0,n=5; int mas;
C (СИ) Вычислить произведение xy, используя лишь оператор сложения Даны натуральный числа x и y. Вычислить произведение xy, используя лишь оператор сложения.Желательно двумя способами.=) https://www.cyberforum.ru/ c-beginners/ thread713488.html
Сортировка массива C (СИ)
Дан массив X размером n, удалить первый отрицательный элемент после первого положительного элемента.
C (СИ) Ввести строку. Заменить знаки препинания на сокращения ( '.' - тчк, ',' - зпт, '?' - впр, ':' - дтч ) https://www.cyberforum.ru/ c-beginners/ thread713465.html
Ввести строку. Заменить знаки препинания на сокращения ( '.' - тчк, ',' - зпт, '?' - впр, ':' - дтч )
419 / 418 / 167
Регистрация: 28.11.2010
Сообщений: 1,183
03.12.2012, 02:00 0

Вывод элемента массива, значение которого меньше всего отличается от арифметической средней всех элементов массива - C (СИ) - Ответ 3792603

03.12.2012, 02:00. Показов 1762. Ответов 8
Метки (Все метки)

Ответ

или так,, по идее ошибок нет, но проверьтеи уберите лишние объявления яперменных
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
#include <stdio.h>
#include <stdlib.h>
int Sum(int *, int);
int nomer (int , int *, int);
void print (int *, int, int);
int main(int argc, char **argv)
{
    int *a, i=0, n, sum=0, sr=0, tmp=0, delta=0, k=0;
    printf("Enter n: ");
    scanf("%d",&n);   //opredelenie kolichestva znachenij v massive
    a=(int*) malloc(n*sizeof(int));  //poluchenie neobhodimoi pamjati pod massiv
    //sum=Sum(a,n);
    k=nomer(Sum(a,n), a, n);
    print (a,n,k);
    free(a);
    getch();
    return 0;
    return 0;
}
int Sum (int *a, int n)
{
    int i=0, sum=0 ;
    for (; i<n; i++) {
        printf("Enter a[%d]: ",i);
        scanf("%d",&(a[i]));  //poluchenie elementov massiva
        if (a[i] <= 0 || a[i]>=20) {
            printf("Vvedite chislo ot 0 do 20 \n");
            scanf("%d",&(a[i]));
            //return 0;
        }
        sum+=a[i]; //s4itaem summu
    }
    return sum;
}
int nomer (int sum, int *a, int n)
{
    int  i=0, sr=0, tmp=0, delta=0, k=0;
    sr=sum/n;
        printf ("\n Srednee %d \n", sr);
    tmp=abs(sr-a[0]);
    delta=tmp;
    //printf ("%d-%d, delta=%d, tmp=%d k=%d \n", a[0], sr, delta, tmp, k);
    for (i=1; i<n; ++i) {
        delta=abs(sr-a[i]);
        //printf ("%d-%d, delta=%d, tmp=%d k=%d \n", a[i],sr, delta, tmp, k);
        if (delta<=tmp) {
            tmp=delta;
            k=i;
        }
    }
    return k;
}
 
void print (int *a, int n, int k)
{
    int i=0;
    for (i=0; i<n; ++i) {
        if (a[i]==a[k]) printf ("%d ", a[i]);
    }
}
Добавлено через 6 минут
Цитата Сообщение от narvere Посмотреть сообщение
еще боролся с такой проблемой: среднюю выдает в целочисленном виде. от сюда иногда возникает ошибка в расчетах. например ввожу числа 8,16,13,9 Среднее 11,50. ближайшее число 13. А программа выдает - 9.
С первом моем коде я использовал fabs для отсечения отрицательного значения. Но в Вашей редакции кода используете abs. Может в этом ошибка?
Если хотите считать среднее как float, поменяйте типы переменных на флоат, например

float sr=0, tmp=0, delta=0
sr=(float)sum/n;

и используйте fabs.

Вернуться к обсуждению:
Вывод элемента массива, значение которого меньше всего отличается от арифметической средней всех элементов массива C (СИ)
1
Заказать работу у эксперта
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
03.12.2012, 02:00
Готовые ответы и решения:

Найти индекс первого элемента массива, модуль которого меньше всего отличается от 5
Найти элементы , модуль которого меньше всего отличается от 5 , номер первого такого элемента....

Составить программу, которая находит номер элемента, значение которого меньше всего откланяется от среднего значения всех элементов
Дан линейный массив А, что состоит из N действительных чисел. Составить программу, которая находит...

Вычислить номер элемента, значение которого близкое к среднему арифметическому всех элементов массива
Есть пока такой код, он только сер.ариф должен считать. И он неработает. Чтото связаное с...

Образовать массив из всех элементов массива В, которые меньше максимального элемента массива А
Помогите пожалуйста написать программу Массив С образовать из всех элементов массива В, которые...

8
03.12.2012, 02:00
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
03.12.2012, 02:00
Помогаю со студенческими работами здесь

Найти индекс элемента массива, значение которого наименее отличается от среднего значения. Прокомментировать код
дан массив А из N элементов, Найти индекс элемента массива значение которого наименее отличается от...

Вычислить факториал первого элемента массива, значение которого меньше 8
1. Вычислить факториал первого элемента массива, значение которого меньше 8. Желательно...

Из массива удалить элементы, стоящие после максимального и имеющие значение меньше среднего арифметического всех элементов массива
Из массива удалить элементы, стоящие после максимального и имеющие значение меньше среднего...

Найти среднее арифметическое элементов массива, значение которого меньше заданного
Найти среднее арифметическое элементов массива, значение которого меньше заданного, в каждом...

0
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru