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

Не удается передать значение массива через функцию. Си

31.01.2017, 20:01. Просмотров 270. Ответов 8
Метки нет (Все метки)

в функции maxElementsinMassive нужно найти максимальное значение из двух массивов (a(n) и b (m)) и его индекс и первым на печать вывести массив содержащий максимальное значение. Как это сделать с помощью передачи значения функции
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
#include <locale.h>
#include <stdio.h>
#include <malloc.h>
#include <conio.h>
#include <process.h>
int maxElementsinMassive (int*a, int*b, int n, int m){
    int max=*a, nmax=0;
    int max1=*b, mmax=0;
    
return max, max1, nmax, mmax;
}
 
int main(){
    int *a, *b, n, m;  
    setlocale(LC_CTYPE,"Russian");
    system("cls");
    printf("Введите размер массивов:\n");
    scanf("%d", &n);
    a = (int*) malloc(n*sizeof(int));
    b = (int*) malloc(n*sizeof(int));
    for(int i=0; i<n; i++) // Ввод элементов массива a
    {
      printf("a[%d] = ", i);
      scanf("%d", (a+i));
    }
    for(int i=0; i<n; i++) // Ввод элементов массива b
    {
      printf("b[%d] = ", i);
      scanf("%d", (b+i));
    }
    
    maxElementsinMassive(a, b, n, m);
    free(a);
    free(b);
    getchar();
    getchar();
    return 0;
}
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.01.2017, 20:01
Ответы с готовыми решениями:

Как передать значения двумерного массива через функцию
Делаю так public partial class Form1 : Form { public Form1() { ...

Не удается передать в запрос значение CheckBoxa
Доброго дня! Долгое время не программировал в Access и вот результат, не получаются простые...

Не удается передать значение членам класса
Доброе время суток, возникла проблема, при создании класса добавил функцию, с помощью которой я...

Написать функцию, которая могла бы передать значение в другую функцию
как сделать функцию которая бы могла передать значеие в другую функцию ну к примеру a=4*b; где...

Передать значение в функцию
Имеется функция сравнения с полем в базе данных введенных данных в Edit. void proverka(char...

8
MortalChip
16 / 16 / 12
Регистрация: 20.11.2016
Сообщений: 63
31.01.2017, 20:08 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
#include <locale.h>
#include <stdio.h>
#include <malloc.h>
#include <conio.h>
#include <process.h>
 
int maxElementsinMassive (int*a, int*b, int n, int m)
{
    int max=*a, nmax=0;
    int max1=*b, mmax=0;
 
    return max, max1, nmax, mmax;
}
 
int main()
{
    int *a, *b, n, m;
    setlocale(LC_CTYPE,"Russian");
    system("cls");
    printf("Введите размер массивов:\n");
    scanf("%d", &n);
    a = (int*) malloc(n*sizeof(int));
    b = (int*) malloc(n*sizeof(int));
    for(int i=0; i<n; i++) // Ввод элементов массива a
    {
        printf("a[%d] = ", i);
        scanf("%d", (a+i));
    }
    for(int i=0; i<n; i++) // Ввод элементов массива b
    {
        printf("b[%d] = ", i);
        scanf("%d", (b+i));
    }
 
    maxElementsinMassive(a, b, n, m);
    free(a);
    free(b);
    getchar();
    getchar();
    return 0;
}
2
Байт
Эксперт C
20315 / 12875 / 2693
Регистрация: 24.12.2010
Сообщений: 26,902
31.01.2017, 21:40 3

Не по теме:

Цитата Сообщение от MortalChip Посмотреть сообщение
Для того чтоб было удобней читать.
А ведь и правда, удобнее. Остается еще только ТС научить этому нехитрому приему...:)



Добавлено через 4 минуты
natalia776, Если вы мне расскажите, что такое m и научитесь делать такие простые чудеса, как уважаемый MortalChip, я попробовал бы вам помочь.
0
MortalChip
16 / 16 / 12
Регистрация: 20.11.2016
Сообщений: 63
31.01.2017, 23:13 4
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
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
#include <locale.h>
#include <stdio.h>
#include <malloc.h>
#include <conio.h>
#include <process.h>
 
void quick_sort(int *array, int array_size);
void swap(int *first_adress,int *second_adress);
 
void print_array(int *array,int array_size)
{
    printf("Array is:\n");
    for(int i=0; i<array_size; i++)
    {
        printf("%d ",*(array+i));
        if(!(i%9)&&(i>1))//для красоты
        {
            putchar('\n');
        }
    }
    putchar('\n');//для красоты
}
 
 
int maxElementsinMassive (int *a, int *b, int array_size)
{
    quick_sort(a,array_size);
    quick_sort(b,array_size);
    if(*(a+array_size-1)>*(b+array_size-1))
    {
        print_array(a,array_size);
        print_array(b,array_size);
        return 0;
    }
    print_array(b,array_size);
    print_array(a,array_size);
    return 0;
 
}
 
void quick_sort(int *array, int array_size)
{
    int pivot, start_point = 1, end_of_array = array_size - 1;
    if (array_size < 2)
    {
        return;
    }
    swap(array, (array+(end_of_array/2)));
    pivot = *array;
    while(start_point <= end_of_array)
    {
        while((start_point <= end_of_array)  && (*(array+end_of_array)>=pivot) )
        {
            end_of_array--;
        }
        while((start_point <= end_of_array) && (*(array+start_point) < pivot))
        {
            start_point++;
        }
        if (start_point <= end_of_array)
        {
            swap((array+start_point), array+end_of_array);
        }
    }
    swap(array, array+end_of_array);
    quick_sort(array, start_point);
    quick_sort(array+start_point, array_size-(start_point+1));
}
 
/*Принимает 2 адреса и меняет значения местами*/
void swap(int *first_adress,int *second_adress)
{
    if(*first_adress==*second_adress)return;
    int temp=*second_adress;
    *second_adress=*first_adress;
    *first_adress=temp;
    return;
}
 
int main()
{
    int *a, *b, array_size=0;
    setlocale(LC_CTYPE,"Russian");
    system("cls");
    printf("Введите размер массивов:\n");
    if((scanf(" %d", &array_size)==EOF)) return 1;
    if(array_size<=0)
    {
        printf("Отрицательных и равных нулю массивов не бывает.\n Пользователь сломан, дайте ему зефирку и сделайте ему чай или кофе.\n");
        //проверка на внимательность.
        return 1;
    }
    a = (int*) malloc(array_size*sizeof(int));
    b = (int*) malloc(array_size*sizeof(int));
    if((a==NULL) || (b==NULL))
    {
        printf("Ошибка ОС, malloc fail\n");//проверка malloc.
        return 1;
    }
    for(int i=0; i<array_size; i++) // Ввод элементов массива a
    {
        printf("a[%d] = \n", i);
        scanf(" %d", (a+i));
    }
    for(int i=0; i<array_size; i++) // Ввод элементов массива b
    {
        printf("b[%d] = \n", i);
        scanf(" %d", (b+i));
    }
 
    maxElementsinMassive(a, b, array_size);
    free(a);
    free(b);
    getchar();
    getchar();
    return 0;
}
Что нибудь объяснить?
0
likehood
984 / 828 / 396
Регистрация: 25.12.2016
Сообщений: 2,727
Завершенные тесты: 3
31.01.2017, 23:26 5
MortalChip, там ещё нужен был индекс максимального элемента, видимо его и нужно вернуть из функции.

Не по теме:

Поиск максимального элемента через сортировку? Оригинально-с!

0
MortalChip
16 / 16 / 12
Регистрация: 20.11.2016
Сообщений: 63
31.01.2017, 23:36 6
likehood,
Кто в наши дни держит не сортированные данные? с точки зрения расхода ресурсов компьютера лучше один раз отсортировать данные и патом будет проще ответить на любой каприз.
0
Байт
Эксперт C
20315 / 12875 / 2693
Регистрация: 24.12.2010
Сообщений: 26,902
31.01.2017, 23:41 7
Да, ребята... Если вместо того, чтобы помочь ТС разобраться в простейших вопросах программирования, мы будем показывать, как мы лихо решаем школьные задачки, это, конечно, поднимет нашу самооценку выше всяких крыш, но вряд ли принесет хоть какую-ту пользу уважаемой natalia776.

Добавлено через 3 минуты
Цитата Сообщение от MortalChip Посмотреть сообщение
лучше один раз отсортировать данные и патом будет проще ответить на любой каприз.
Не-а. Не получится. Зуб даю. На все твои сортировки я такой каприз могу отгрохать, что все они будут валяться в медном тазу.
1
MortalChip
16 / 16 / 12
Регистрация: 20.11.2016
Сообщений: 63
01.02.2017, 00:39 8
Байт,
Увидел что после malloc не было проверки а сработал ли он вообще, зачем-то включили process.h, conio.h и malloc.h вместо stdlib.h и решил раз взялся то допишу до конца (а что тут писать).

А если по делу:
То можно зависти "Флажок" (bool flag), и после того как нашли максимальное значение сравним 2 массива сменить его на правда если а больше или ложь если б больше.
В зависимости от Флажка" напечатать то или иное.
0
MrGluck
Модератор
Эксперт CЭксперт С++
8113 / 4965 / 1436
Регистрация: 29.11.2010
Сообщений: 13,456
01.02.2017, 11:46 9
Зачем плодить темы? Тем более, ответ был дан.
0
01.02.2017, 11:46
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.02.2017, 11:46

Передать значение в функцию
var element = document.querySelector('h1'); // нацелились/выбрали елемент и поместили этот элемент...

Передать значение в функцию
Прошу помочь с кодом. Как из функции file_name_str() именно передать значение переменной file_name...

Передать значение в другую функцию
помогите плз разобраться. надо значение переменной n из функции matrica передать в main. #include...


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

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

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