С Новым годом! Форум программистов, компьютерный форум, киберфорум
C для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
Другие темы раздела
C (СИ) Сравнение элементов массива Си https://www.cyberforum.ru/ c-beginners/ thread1943995.html
В массиве A(M) наименьший элемент поместить на первое место, наименьший из оставшихся – на последнее место, следующий по величине – на второе место, следующий – на предпоследнее и так далее – до середины массива. Формат входных данных. и т.д. Элементы массива – целые числа в диапазоне ±1000. M - целое число в диапазоне . Формат выходных данных. и т.д. Рекомендуемое кол-во циклических...
C (СИ) Работа со словами в строке
Поменять местами первое и последнее слово в каждой строке.
C (СИ) Замена элементов в двухместном массиве https://www.cyberforum.ru/ c-beginners/ thread1943855.html
В двумерном массиве нужно найти строку с наибольшим количеством отрицательных элементов и заменить элементы столбца с тем же номером на ноль, если номер честный, и на единицу, если нечетный. Как здесь работать со счетчиком и сохранять номер строки.
C (СИ) Лабораторная работа 5 https://www.cyberforum.ru/ c-beginners/ thread1943753.html
Требуется сделать лабораторную работу по языке C# с использованием Winforms формулировка задания представлены ниже. Ключевую вершину сделать маленьким кругом,а не пикселем.Прилагающие скриншоты 8 скриншот это само задание и вершины которые даны,а скиншот 9 это трансформация фигуры
C (СИ) Вычислить произведение n сомножителей
Где здесь ошибка? Дано натуральное число n. выччслить n сомножителей произведения 2/1 *2/3*4/3*4/5*6/5*6/7.... #include <stdio.h> #include <stdlib.h> #include <math.h> int main (void) { int i,N; double S;
C (СИ) Среднее арифметическое отрицательных элементов квадратной матрицы выше/ниже главной/побочной диагонали https://www.cyberforum.ru/ c-beginners/ thread1943695.html
Помогите, пожалуйста! Нужно найти среднее арифметическое отрицательных элементов квадратной матрицы, расположенной выше главной и побочной диагонали, а так же ниже главной и побочной. Не могу понять побочную диагональ. Собираю каждую диагональ по отдельности. Вот мой код. HELP :Р :cry: #include<stdio.h> #include<conio.h> int main() { int i,j,n; printf("Vvedite n(razmernost')="); ...
C (СИ) Удалить из списка информацию о спортсмене с наименьшим количеством очков https://www.cyberforum.ru/ c-beginners/ thread1943649.html
Запись имеет вид: фамилия спортсмена, его номер, количество набранных очков. Удалить из списка информацию о спортсмене с наименьшим количеством очков. #define _CRT_SECURE_NO_WARNINGS #include <stdio.h>* #include <locale.h> struct sportsmen{ char FirstName; int number, points; }; void read(struct sportsmen *sportsmen, int i) { for (int j = 0; j < i; j++){
C (СИ) Что численно больше, площадь окружности или объем шара заданного радиуса
Дан радиус окружности. Определить, что численно больше, площадь окружности или объем шара заданного радиуса. Во входном потоке задано одно вещественное число - Радиус. Значение всех исходных величин не превышает 30000. Число pi принять равным 3.14 Пример входного файла: 5 В выходной поток вывести 'S' если площадь окружности больше и 'V' в противном случае. Пример выходного файла:
C (СИ) Необходимо переделать программу c С++ на С https://www.cyberforum.ru/ c-beginners/ thread1943579.html
#include <windows.h> #include <iostream> #include <math.h> int a={2,10}; int b={4,6}; int c={8,3}; int d={5,12}; double x(int i){
C (СИ) Что за условие в скобках https://www.cyberforum.ru/ c-beginners/ thread1943577.html
while(1 != scanf("%d", &n)) Подскажите, уважаемые. Не могу понять. Что за условие в скобках? 1!=...
Необходимо переделать программу на С++ на С C (СИ)
#include <windows.h> #include <iostream> #include <string> int main(int argc, _TCHAR* argv) { std::string str; std::getline(std::cin,str); for(int i=0;i<str.length();i++){ if(str=='.') {str.resize(i);break;}
C (СИ) Подсчитать количество слов во введенном предложении https://www.cyberforum.ru/ c-beginners/ thread1943553.html
Подсчитать количество слов во введенном предложении.
0 / 0 / 0
Регистрация: 22.03.2017
Сообщений: 20
0

Передача\возврат указателя на массив в\из функции - C (СИ) - Ответ 10244499

22.03.2017, 14:44. Показов 1245. Ответов 2
Метки (Все метки)

Author24 — интернет-сервис помощи студентам
Когда захожу в функцию PrintNeravenstvo, то указатель правильный, как только я делаю один заход на строчку( нажимаю ф10 один раз), то указатель меняется, и почему-то указывает на i. Сперва я создаю массив в функции uravnenie_ploskosti, потом его возвращаю в функцию convex_hull, а после передаю этот указатель в функцию PrintNeravenstvo, где у меня и образовался косяк. Вот код:
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
int* uravnenie_ploskosti(vertex *p1, vertex *p2, vertex *p3)
{
    int i;
    vertex *p;
    int matr[K][K];
    int uravnenie[M];
 
    for (i = 0, p = p1; i < K; i++)
    {
        if (i == 1) p = p2;
        if (i == 2) p = p3;
        matr[i][0] = 1;
        matr[i][1] = p->y;
        matr[i][2] = p->z;
    }
    uravnenie[0] = matr[0][0] * matr[1][1] * matr[2][2] + matr[0][1] * matr[1][2] * matr[2][0] + matr[0][2] * matr[1][0] * matr[2][1] - matr[0][2] * matr[1][1] * matr[2][0] - matr[0][0] * matr[1][2] * matr[2][1] - matr[0][1] * matr[1][0] * matr[2][2];
 
    for (i = 0, p = p1; i < K; i++)
    {
        if (i == 1) p = p2;
        if (i == 2) p = p3;
        matr[i][1] = 1;
        matr[i][0] = p->x;
        matr[i][2] = p->z;
    }
    uravnenie[1] = matr[0][0] * matr[1][1] * matr[2][2] + matr[0][1] * matr[1][2] * matr[2][0] + matr[0][2] * matr[1][0] * matr[2][1] - matr[0][2] * matr[1][1] * matr[2][0] - matr[0][0] * matr[1][2] * matr[2][1] - matr[0][1] * matr[1][0] * matr[2][2];
 
    for (i = 0, p = p1; i < K; i++)
    {
        if (i == 1) p = p2;
        if (i == 2) p = p3;
        matr[i][2] = 1;
        matr[i][0] = p->x;
        matr[i][1] = p->y;
    }
    uravnenie[2] = matr[0][0] * matr[1][1] * matr[2][2] + matr[0][1] * matr[1][2] * matr[2][0] + matr[0][2] * matr[1][0] * matr[2][1] - matr[0][2] * matr[1][1] * matr[2][0] - matr[0][0] * matr[1][2] * matr[2][1] - matr[0][1] * matr[1][0] * matr[2][2];
 
    for (i = 0, p = p1; i < K; i++)
    {
        if (i == 1) p = p2;
        if (i == 2) p = p3;
        matr[i][0] = p->x;
        matr[i][1] = p->y;
        matr[i][2] = p->z;
    }
    uravnenie[3] = -(matr[0][0] * matr[1][1] * matr[2][2] + matr[0][1] * matr[1][2] * matr[2][0] + matr[0][2] * matr[1][0] * matr[2][1] - matr[0][2] * matr[1][1] * matr[2][0] - matr[0][0] * matr[1][2] * matr[2][1] - matr[0][1] * matr[1][0] * matr[2][2]);
    if (uravnenie[0] == 0 && uravnenie[1] == 0 && uravnenie[2] == 0)
    {
        printf("Вершины %c,%c,%c лежат на одной прямой\n", p1->name, p2->name, p3->name);
        return NULL;
    }
    printf("Уравнение плоскости по точкам %c,%c,%C : %d*x+%d*y+%d*z+%d = 0\n", p1->name, p2->name, p3->name, uravnenie[0], uravnenie[1], uravnenie[2], uravnenie[3]);
    return uravnenie;
}
 
void PrintNeravenstvo (int *a)
{
    int i = 0;
    for (i = 0; i < M; i++)
    {
        if (i == 0 && *(a + i) != 0)
        {
            printf("%d*x", *(a + i));
            continue;
        }
 
        if (i == 1 && *(a + i) > 0) printf("+%d*y", *(a + i));
        if (i == 1 && *(a + i) < 0) printf("%d*y", *(a + i));
        if (i == 2 && *(a + i) > 0) printf("+%d*z", *(a + i));
        if (i == 2 && *(a + i) < 0) printf("%d*z", *(a+ i));
        if (i == 3) printf("<=%d", *(a + i));
    }
    printf("\n");
}
 
void convex_hull( char *f)
{
    FILE *file;
    int n, i, j, k, x, y, z, boolean;
    int *p;
    vertex *p1, *p2, *p3;
    file = fopen(f, "r");
 
    if (file == NULL)
    {
        printf("Не удается открыть файл vertex.txt");
        return;
    }
 
    n = getc(file) - 48;
 
    for (i = 0; i < n; i++)
    {
        fscanf(file, "%d%d%d", &x, &y, &z);
        push(x, y, z, 65 + i);
    }
 
    fclose(file);
 
    for (p1 = First; p1->next->next!=NULL; p1=p1->next)
        for (p2 = p1 -> next; p2->next != NULL; p2 = p2->next)
            for (p3 = p2->next; p3 != NULL; p3 = p3->next)
            {
                p = uravnenie_ploskosti(p1, p2, p3);
                if (p == NULL) continue;
                if (n == 4)
                {
                    PrintNeravenstvo(p);
                }
            }
}


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

Возврат указателя на массив структур из функции?
Добрый день! Функция enter в момент вызова принимает массив структур monitor. Запускает функцию...

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

Возврат указателя из функции
Почему функция vvod не возвращает указатель? #include&quot;stdafx.h&quot; #include &quot;conio.h&quot;...

Возврат указателя на локальный массив
Например ример: static unsigned char * func(...) { unsigned char d; memset(d, 'A',...

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

Возврат указателя на массив из функции
Здравствуйте. Пытаюсь вернуть указатель на массив из функции. #include &lt;iostream&gt; using...

Возврат указателя на массив из функции
День добрый, коллеги по цеху. Не откажите в нужде java программисту в познаниях нативного кода....

JNI, передача и возврат указателя
Все здрасьте. Использую JNI, хочу передавать между java и с++ указатель. Какой java-тип...

Передача и возврат указателя из массива
Доброго времени суток. проблема с указателями как я догадываюсь. функция im исправно работает...

Передача указателя на массив в качестве параметра функции в QML
Доброго времени суток. Имеется следующая система - в Qml приложении есть два элемента: Text{} и...

ASM (Возврат указателя из функции)
1)Предисловие Функция, написанная на языке Ассемблера вызывается из кода, написанного на С. ...

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