Форум программистов, компьютерный форум, киберфорум
Наши страницы
C для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.56/9: Рейтинг темы: голосов - 9, средняя оценка - 4.56
lenovo95
0 / 0 / 0
Регистрация: 28.10.2015
Сообщений: 6
1

Подсчитать количество элементов, больших значения t и первым вывести массив, имеющий наименьшее их количество

20.11.2015, 19:48. Просмотров 1855. Ответов 4
Метки нет (Все метки)

Написать пользовательскую функцию, решающую указанную ниже задачу. Массивы А и В динамические, выделение памяти выполнить функциями calloc() или malloc(), обращение к элементам массива только через указатель.
Предусмотреть реакцию программы на ситуации, при которых задача не имеет решения.
12. Заданы два массива А(M) и В(M). Подсчитать в них количество элементов, больших значения t и первым на печать вывести массив, имеющий наименьшее их количество.
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.11.2015, 19:48
Ответы с готовыми решениями:

Подсчитать количество элементов массива, больших заданного значения (double)
Подсчитать количество элементов массива, больших заданного значения(double).

Подсчитать количество и сумму всех элементов последовательности, больших некоторого значения А
Возникли трудности с решением этой задачи . Буду признателен за помощь. Текст задания: Дана...

Вывести массив, имеющий наибольшее количество положительных элементов (нужно найти ошибку)
Заданы два массива А(M) и В(M). Подсчитать в них количество положительных элементов и первым на...

Подсчитать в матрице количество элементов, больших a и меньших b
Даны два целых числа a и b.Составить программу, которая в линейной целочисленной матрице, состоящей...

Определите количество элементов последовательности, больших среднего арифметического значения положительных элементов
Дана последовательность х1, х2, …, хn. Определите количество элементов последовательности, больших...

4
VasiliyRM
68 / 68 / 55
Регистрация: 17.11.2015
Сообщений: 148
20.11.2015, 22:34 2
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
61
62
63
64
#include <stdio.h>
#include <stdlib.h>
#include<time.h>
 
int main()
{
    system("chcp 1251>NUL");
    int *a, *b;
    int m = 0, i = 0, ta = 0, tb = 0, t = 0;
    srand((int)time(NULL));
    printf("Vedite M: ");
    scanf("%d",&m);
    printf("Vedite t: ");
    scanf("%d", &t);
 
 
    a = (int *)calloc(m, sizeof (int));
    b = (int *)calloc(m, sizeof (int));
 
    for (i = 0;i < m;i++)
    {
        *(a + i) = rand() % 100;
        if (a[i] > t) ta++;
        *(b + i) = rand() % 100;
        if (b[i] > t) tb++;
    }
 
    if (ta <= tb)
    {
        printf("Число элементов в массиве A ( > %2d) = %d\n", t, ta);
        for (i = 0;i < m;i++) 
            if (*(a + i)>t) 
                printf("a[%d]=%2d\t!\n", i, *(a + i));
            else
                printf("a[%d]=%2d\n", i, *(a + i));
        printf("Число элементов в массиве B ( > %2d) = %d\n", t, tb);
        for (i = 0;i < m;i++)
            if (*(b + i)>t)
                printf("b[%d]=%2d\t!\n", i, *(b + i));
            else
                printf("b[%d]=%2d\n", i, *(b + i));
    }
    else
    {
        printf("Число элементов в массиве B ( > %2d) = %d\n", t, tb);
        for (i = 0;i < m;i++)
            if (*(b + i)>t)
                printf("b[%d]=%2d\t!\n", i, *(b + i));
            else
                printf("b[%d]=%2d\n", i, *(b + i));
        printf("Число элементов в массиве A ( > %2d) = %d\n", t, ta);
        for (i = 0;i < m;i++)
            if (*(a + i)>t)
                printf("a[%d]=%2d\t!\n", i, *(a + i));
            else
                printf("a[%d]=%2d\n", i, *(a + i));
    }
 
 
    free(a);
    free(b);
 
    return 0;
}
0
fanatdebian
Z3JheSBoYXQ=
339 / 234 / 83
Регистрация: 08.07.2012
Сообщений: 577
20.11.2015, 22:59 3
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
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
//Написать пользовательскую функцию, решающую указанную ниже задачу. Массивы А и В динамические, выделение памяти выполнить функциями calloc() или malloc(), обращение к элементам массива только через указатель.
//Предусмотреть реакцию программы на ситуации, при которых задача не имеет решения.
//12. Заданы два массива А(M) и В(M). Подсчитать в них количество элементов, 
//больших значения t и первым на печать вывести массив, имеющий наименьшее их количество.
 
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <time.h>
#include <assert.h>
 
#define SIZE_ARRAY 10
 
//prototype functions
void viewArray(int *array);
int * makeArray(int seed);
int compareArray(int *array, int t);
void clearArray(int *array);
 
 
 
// main point 
int main(int argc, char *argv[]){
    //definitions variables
    int *a=NULL;
    int *b=NULL;
    int t=10;
    
    //make arrays
    a = makeArray(30);
    b = makeArray(50);
    
    //compare arrays and view arrays
    printf("Compare element t=%d\n", t);
    if (compareArray(a,t) < compareArray(b,t)){     
        viewArray(a);
        viewArray(b);               
    } else {
        viewArray(b);
        viewArray(a);
    }
        
    //clear arrays
    clearArray(a);
    clearArray(b);
    
    return 0;
}
 
//release prototype functions
void viewArray(int *array){
    for(int x=0; x<SIZE_ARRAY; x++){
        printf("[%2d][%p] %d\n", x, &array[x], array[x]);
    }
    printf("\n");
    
}
int * makeArray(int seed){
    //get memeory block 
    int *array = malloc(sizeof(int) * SIZE_ARRAY);
    assert(array);  
    //generate random values 
    srand(time(NULL));
    for(int x=0; x<SIZE_ARRAY; x++){            
        array[x]=rand() % seed;         
    }   
        
    return array;
}
                
int compareArray(int *array, int t){
    int count = 0;
    
    for(int x=0; x<SIZE_ARRAY; x++){
        if(array[x]>t) 
        count++;
    }
    return count;                       
}
void clearArray(int *array){
    if(array)
    free(array);    
}
Bash
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
Compare element t=10
[ 0][0x80bc187f0] 4
[ 1][0x80bc187f4] 11
[ 2][0x80bc187f8] 8
[ 3][0x80bc187fc] 28
[ 4][0x80bc18800] 12
[ 5][0x80bc18804] 7
[ 6][0x80bc18808] 29
[ 7][0x80bc1880c] 49
[ 8][0x80bc18810] 35
[ 9][0x80bc18814] 27
 
[ 0][0x80bc187c0] 4
[ 1][0x80bc187c4] 21
[ 2][0x80bc187c8] 18
[ 3][0x80bc187cc] 18
[ 4][0x80bc187d0] 12
[ 5][0x80bc187d4] 17
[ 6][0x80bc187d8] 9
[ 7][0x80bc187dc] 19
[ 8][0x80bc187e0] 25
[ 9][0x80bc187e4] 7
enjoy, dude.
0
lenovo95
0 / 0 / 0
Регистрация: 28.10.2015
Сообщений: 6
20.11.2015, 23:16  [ТС] 4
Ошибка 1 error C2440: инициализация: невозможно преобразовать "void *" в "int *" c:\users\lenovo\documents\visual studio 2013\projects\consoleapplication12\consoleapplication12\исходный код.cpp 56 1 ConsoleApplication12
3 IntelliSense: значение типа "void *" нельзя использовать для инициализации сущности типа "int *" c:\Users\Lenovo\Documents\Visual Studio 2013\Projects\ConsoleApplication12\ConsoleApplication12\Исходный код.cpp 56 15 ConsoleApplication12
0
fanatdebian
Z3JheSBoYXQ=
339 / 234 / 83
Регистрация: 08.07.2012
Сообщений: 577
21.11.2015, 06:09 5
Это код на Ansi-C, а не "исходный код.cpp" (с++). И да, учить С на поделиях мелкософта, это оксюморон. Установи Cygwin и используй нормальный ide, clion - как пример, или достаточно обычного редактора типа c подсветкой синтаксиса geany,pellec c.

Добавлено через 6 минут
И возможно он имел ввиду
C
1
2
//get memeory block 
    int *array = malloc(sizeof(int) * SIZE_ARRAY);
замени на
C
1
2
//get memory block 
    int *array = (int*)malloc(sizeof(int) * SIZE_ARRAY);
0
21.11.2015, 06:09
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.11.2015, 06:09

Подсчитать в массивах количество элементов, больших значения t
1. Заданы два массива A(N) и B(M). Подсчитать в них количество элементов, больших значения t и...

Функции. Подсчитать в массивах количество элементов, больших значения t
Заданы два массива А и В. Подсчитать в них количество элементов, больших значения t и первым на...

Подсчитать количество элементов, больших среднего арифметического значения всех положительных элементов
Для динамического массива подсчитать количество его элементов, больших среднего арифметического...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.