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

Вылет программы при вводе значений

05.01.2016, 14:47. Просмотров 270. Ответов 6
Метки нет (Все метки)

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
#include <stdio.h>
#include <stdlib.h>
#include <malloc.h>
 
double matrix_inputB (double **);
double matrix_inputC (double **);
 
double matrix_inputB (double **B)
{
    int m, n, i, j;
    for (i=0 ; i<m ; i++)
        for (j=0 ; j<n ; j++)
            scanf("%lf", &B[i][j]);
}
double matrix_inputC (double **C)
{
    int m, n, i, j;
    for (i=0 ; i<n ; i++)
        for (j=0 ; j<m ; j++)
            scanf("%lf", &C[i][j]);
}
 
int main(void)
{
    double **B, **C;
    int m, n, i, j, x;
    printf("Введите размер матрицы\n");
    printf ("m=");
    scanf ("%d", &m);
    printf("n=");
    scanf ("%d", &n);
    B=(double**)malloc(m*sizeof(int*));
    for(i=0 ; i<m ; i++)
        B[i]=(double*)malloc(n*sizeof(int*));
    C=(double**)malloc(n*sizeof(int*));
    for(i=0 ; i<n ; i++)
        C[i]=(double*)malloc(m*sizeof(int*));
    matrix_inputB(*B);
    matrix_inputC(*C);
    printf("В матрице B\n");
    for (i=0 ; i<m ; i++)
    {
        x=0;
        for (j=0 ; j<n ; j++)
        {
            if (B[i][j]>=1)
            {
                x++;
                if (x==2)
                    printf("В строке %d содержится 2 положительных элемента %lf %lf\n", i, B[i][j], B[i][j-1]);
            }
        }
    }
    printf("В матрице C\n");
    for (i=0 ; i<n ; i++)
    {
        x=0;
        for (j=0 ; j<m ; j++)
        {
            if (C[i][j]>=1)
            {
                x++;
                if (x==2)
                    printf("В строке %d содержится 2 положительных элемента %lf %lf\n", i, C[i][j], C[i][j-1]);
            }
        }
    }
    system("PAUSE");
    return 0;
}
Программа вылетает при вводе значений. При расстановке указателей на m и n, вылетает сразу после ввода m и n
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.01.2016, 14:47
Ответы с готовыми решениями:

Программа вылетает при вводе значений
вроде прохожу си второй год и проги писал гораздо сложней, а тут реально туплю... ...

Программа падает при вводе значений
#include &lt;stdio.h&gt; #include &lt;conio.h&gt; #include &lt;math.h&gt; float ex(int a,int nn); float fi(int...

При вводе каких значений выполнение цикла завершится?
int num; do { scanf (&quot;%d&quot;, &amp;num); } while (num &gt; 100); 20? -100? 100? 120?

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

Завершить работу программы при вводе буквы
помню ктото прогу не мог написать чтоб вводишь цивры 12345.. и как тока нажал на букву выход я...

6
Hikari
Хитрая блондиночка $)
1453 / 966 / 399
Регистрация: 21.12.2015
Сообщений: 3,785
05.01.2016, 14:54 2
Цитата Сообщение от Kawaii_desu Посмотреть сообщение
matrix_inputB(*B);
А зачем тут *?
Ты и так передаешь указатель двойной
0
Kawaii_desu
0 / 0 / 1
Регистрация: 05.01.2016
Сообщений: 14
05.01.2016, 14:57  [ТС] 3
Hikari, убрал, краш всё в том же месте что и раньше.
0
easybudda
Модератор
Эксперт CЭксперт С++
10209 / 6108 / 1536
Регистрация: 25.07.2009
Сообщений: 11,609
05.01.2016, 16:01 4
Цитата Сообщение от Kawaii_desu Посмотреть сообщение
int m, n, i, j;
значения переменных - по сути случайные числа.
Цитата Сообщение от Kawaii_desu Посмотреть сообщение
for (i=0 ; i<m ; i++)
Попробуйте угадать, чколько раз выполнится тело этого цикла?
То, что Вы где-то в main объявляете переменные с тем же именем и даже присваиваете им какие-то значения (правда, не проверяя, какие именно и на сколько удачно), ни коим образом не инициализирует локальные переменные внутри функций.
0
Kawaii_desu
0 / 0 / 1
Регистрация: 05.01.2016
Сообщений: 14
05.01.2016, 16:33  [ТС] 5
easybudda, по факту выполняется бесконечно, а вот как переменным внутри функции присвоить значения, вводимые в main?
0
easybudda
Модератор
Эксперт CЭксперт С++
10209 / 6108 / 1536
Регистрация: 25.07.2009
Сообщений: 11,609
05.01.2016, 17:17 6
Цитата Сообщение от Kawaii_desu Посмотреть сообщение
а вот как переменным внутри функции присвоить значения, вводимые в main?
параметрами передавать.
1
Kawaii_desu
0 / 0 / 1
Регистрация: 05.01.2016
Сообщений: 14
05.01.2016, 22:50  [ТС] 7
easybudda, спасибо, помогло :3
0
05.01.2016, 22:50
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.01.2016, 22:50

Сделать так чтобы работа программы завершалась при вводе фамилии Done
#include&lt;stdio.h&gt; #include&lt;conio.h&gt; #define FNAME &quot;c:\\phone.txt\0&quot; // im'ia faily void...

При вводе a <= 0 выводить надпись о повторном вводе
Я думаю суть задачи понятна, нужно чтобы в том случае когда a&lt;=0, выходила надпись о повторнгом...

Вылет из программы
Здравствуйте форумчане. Столкнулся вот с такой проблемой: при первом вызове процедуры create, если...


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

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

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