Форум программистов, компьютерный форум, киберфорум
C для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
TECHNO
28 / 28 / 8
Регистрация: 04.11.2009
Сообщений: 366
1

Передача значения массива функции

07.11.2010, 14:45. Показов 1142. Ответов 8
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Есть массив А. В функции прибавляем к каждому элементу массива А по единице (это будет массив С). Выводим массив С.

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <conio.h>
#include <stdio.h>
int func (int A[3])
{
int B[3],i;
for (i=0;i<4;i++)
B[i]=A[i]+1;
return B[i];
}
int main()
{
int i, A[3],B[3],C[i];
for(i=0;i<4;i++)
scanf("%d",A[i]);
for(i=0;i<4;i++)
C[i]=func(A[i]);
for(i=0;i<4;i++)
printf("%d\n",C[i]);
getch();
return 0;
}
В чем моя ошибка?
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
07.11.2010, 14:45
Ответы с готовыми решениями:

Передача значения массива из функции
Помогите переместить printf из одной функции в другую. Язык Си. Изначальное задание: Найти в...

Передача значения массива из одной функции в другую
В функции re вводятся 2 строковые переменные Как передать их значения в другую функцию?

Передача массива в параметрах функции
Объявляю фиксированный массив и функцию: int mas; void func(int* mas);// чувствую, что здесь уже...

Передача массива как параметра функции
#include &quot;stdafx.h&quot; #include &quot;stdlib.h&quot; int _tmain(int argc, _TCHAR* argv) { int b;...

8
4866 / 3288 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
07.11.2010, 15:43 2
C
1
for (i=0;i<4;i++)
0, 1, 2, 3 - четыре штуки
0
TECHNO
28 / 28 / 8
Регистрация: 04.11.2009
Сообщений: 366
07.11.2010, 19:01  [ТС] 3
не, дело не в этом
компилятор подчеркивает строку №16
invalid conversion from `int' to `int*'
и initializing argument 1 of `int func(int*)'
0
Эксперт С++
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
07.11.2010, 19:09 4
Цитата Сообщение от Василий-Робот Посмотреть сообщение
C
1
int i, A[3],B[3],C[i];
так делать нельзя

Добавлено через 38 секунд
Да и вообще у тебя все неправильно
1
TECHNO
28 / 28 / 8
Регистрация: 04.11.2009
Сообщений: 366
07.11.2010, 19:12  [ТС] 5
Черт...
А как правильно-то?
0
5232 / 3204 / 362
Регистрация: 12.12.2009
Сообщений: 8,143
Записей в блоге: 2
07.11.2010, 19:15 6
Цитата Сообщение от Василий-Робот Посмотреть сообщение
А как правильно-то?
А какая задача, а то по коду не совсем понятно))
0
TECHNO
28 / 28 / 8
Регистрация: 04.11.2009
Сообщений: 366
07.11.2010, 19:17  [ТС] 7
Я уже писал. Есть массив А. В функции прибавляем к каждому элементу массива А по единице. Выводим получившийся массив.
0
Эксперт С++
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
07.11.2010, 19:22 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
#include <stdio.h>
#include <stdlib.h>
 
void foo(int* a, int* b, size_t size)
{
    int i;
    for(i = 0; i < size; ++i)
        b[i] = a[i] + 1;
}
 
int main()
{
    size_t n, i;
    int *A, *B;
    printf("Input the size of arrays: ");
    scanf("%u", &n);
    A = (int*) malloc(n * sizeof(int));
    if(!A)
    {
        fprintf(stderr, "Can't allocate memory\n");
        exit(1);
    }
    B = (int*) malloc(n * sizeof(int));
    if(!B)
    {
        fprintf(stderr, "Can't allocate memory\n");
                exit(1);
    }
 
    for(i = 0; i < n; ++i)
    {
        printf("%02u > ", i + 1);
        scanf("%d", A + i);
    }
 
    foo(A, B, n);
 
    for(i = 0; i < n; ++i)
        printf("B[%02u] = %d\n", i + 1, B[i]);
 
    free(A);
    free(B);
    return 0;
}
Как видно, здесь можно было вполне обойтись одним массивом
1
Kastaneda
07.11.2010, 19:54     Передача значения массива функции
  #9

Не по теме:

Цитата Сообщение от Василий-Робот Посмотреть сообщение
Я уже писал. Есть массив А. В функции прибавляем к каждому элементу массива А по единице. Выводим получившийся массив.
А, сори, как-то не заметил)) хотя теперь уже все равно, (всмысле рабочий код уже есть)

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

Передача динамического массива как аргумент функции
Вот кусок кода. Если разкомментировать вывод элементов массива на экран в main, то происходит...

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

Передача значения строки из функции
Как правильно передать строку из функции getit в display? По-сути она должна передаваться таким...

Передача значения переменной из функции в процедуру
Добрый день! Нужна помощь в понимании синтаксиса передачи значения переменной из функции в...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru