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

Ошибка в коде

08.12.2012, 23:50. Просмотров 433. Ответов 5
Метки нет (Все метки)

Помогите найти ошибку в коде программы.
Зарание спасибо. =)

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
#include <stdio.h>
#include <stdlib.h>
void ZsuvMatr(double *q,int kel,int n);
void ZvilDP(double **pm,int k);
void DrukMatr(double **pm,int kr,int kc);
void main (void)
{
    double **pms,*pel;
        int kr,kc,i,j;
    printf("Vvedit rozmirnist' matrucci:\n");
    scanf("%d%d",&kr,&kc);
    pms=(double **)calloc(kr,sizeof(double *));
    if (pms==NULL)
        puts("Nedostatnio miscia v dynamichniu pamati!!!");
    puts("Vvedit matrucciu diusnuh chysel:\n");
    DrukMatr(pms,kr,kc);
    for(i=0;i<kr;i++)
    {
        pms[i]=(double *)calloc(kc,sizeof(double));
        if (!pms+i) {
            puts("Nedostatnio miscia v dynamichniu pamati!!!");
            break;
            }
        }
    for(i=0;i<kr;i++)
        for(j=0,pel=pms[i];j<kc;j++,pel++)
            scanf("%f",&pel);
    for(i=0;i<kr;i++)
    puts("\nZsunuta matrucia:\n");
    ZsuvMatr(pms[i],kc,2);
    DrukMatr(pms,kr,kc);
    ZvilDP(pms,kr);
    getchar();
}
 
void ZvilDP(double **pm,int k)
{
    for(int i=0;i<k;i++)
        free(pm[i]);
    free(pm);
}
 
void DrukMatr(double **pm,int kr,int kc)
{
    int i,j;
    for(i=0;i<kr;i++)
        for(j=0;j<kc;j++)
            printf("%f",pm[i][j]);
        puts("");
}
 
void ZsuvMatr(double *q,int kel,int n)
{
    double m;
    for(;n>0;n--)
    {
        m=*q;
        for(int i=0;i<kel-1;i++)
            q[i]=q[i+1];
        q[kel-1]=m;
    }
}

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.12.2012, 23:50
Ответы с готовыми решениями:

Ошибка в коде!
Здравствуйте! Помоги пожалуйста найти ошибку в коде. Между ответами большое...

Ошибка в коде си
Добрый день,буду благодарен за помощь в данном коде,выдает ошибку. return...

Ошибка в коде
Дорогие форумчане помогите! Не могу уже какой час понять почему не получается...

Ошибка в коде си
Добрый вечер,было задание сделать мини меню из 5 пунктов,под темой фильмов,то...

Ошибка в коде
Подскажите пожалуйста, почему после прохождения цикла for в input выдаёт...

5
polyaKIDze
63 / 63 / 20
Регистрация: 16.07.2012
Сообщений: 147
09.12.2012, 05:59 #2
1. Используйте теги форматирования КОДА!!!
2.
C
1
pms[i]=(double *)calloc((size_t) kc,sizeof(double));
по аналогии исправь остальные косяки, где память улетает в (|)
3. DrukMatr(pms,kr,kc) используешь еще до того, как выделил память под каждый элемент

Исправляй, дальше скорее всего тоже есть косяки.

Добавлено через 5 часов 42 минуты
upd: не первый раз за сегодня мое сообщение игнорируют создатели темы. А поскольку везде мне писать лень, то пишу здесь. (тут я громко матерюсь) Неужели совет нисколько не помог? Неужели после того, как вы сделали нормально приведение типов, программа не проработала чуть дольше? Вы считаете, что, выложив свой говнокод, за вас все сделают добрые лохи? Ну допустим, мой пост не помог, не всем дано уметь ДУМАТЬ. Но можно же спросить: "Что за хрень вы тут написали? Я не понимать." Разжевал бы уж как-нибудь. А чего вы ждете, я не знаю. Не дано.
В любом случае, я тратил на вас время, причем бесплатно. И видеть, что я потратил его зря, очень обидно. Не говоря уже, что просто хочется элементарного спасибо.
1
РостикUSA
3 / 3 / 0
Регистрация: 29.10.2012
Сообщений: 41
09.12.2012, 20:26  [ТС] #3
polyaKIDze
Во-первых: я только сегодня зашел и прочитал то, что вы написали.Спасибо.
Во-вторых: я сделал то, что вы сказали - не помогло.И правильно вы заметили - "не всем дано уметь думать". окда?
потом: я лично говорил вам, чтобы вы мне проверили код? Или настаивал, чтобы вы тратили свое драгоценное время на мой "говнокод"? Нет.
Тогда скажите мне, пожалуйста, для чего тогда сделан этот форум? Для таких как вы, которые будут искать какие-то "гавнокоды" и писать, что им не сказали спасибо?
Хорошо. Скажу вам спасибо, возможно вас это как-то успокоит.
P.S. Правильно делают, что игнорируют ваши сообщения.
Я зря потратил свое время на вас.Счастливо и удачи!
0
polyaKIDze
63 / 63 / 20
Регистрация: 16.07.2012
Сообщений: 147
09.12.2012, 22:00 #4
РостикUSA,
Цитата Сообщение от polyaKIDze Посмотреть сообщение
3. DrukMatr(pms,kr,kc) используешь еще до того, как выделил память под каждый элемент
Я же показал, где падает программа. Это 16 строчка. Она вообще не нужна. Как можно еще точнее сказать, что не так?

Признаю, привидение типов тут не при чем. Хотя писать все равно стоит правильно. Но память все равно не выделяется. Строка 8. Так писать нельзя. Строка 20 - еще кусок говнокода. Теперь память выделяется:
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
    double **pms;
    double *pel;
        int kr,kc,i,j;
    printf("Vvedit rozmirnist' matrucci:\n");
    scanf("%d%d",&kr,&kc);
    pms=(double **)calloc(kr,sizeof(double *));
    if (pms==NULL)
        puts("Nedostatnio miscia v dynamichniu pamati!!!");
    puts("Vvedit matrucciu diusnuh chysel:\n");
   // DrukMatr(pms,kr,kc);
    for(i=0;i<kr;i++)
    {
        pms[i]=(double *)calloc(kc,sizeof(double));
        if (pms[i] == NULL) {
            puts("Nedostatnio miscia v dynamichniu pamati!!!");
            break;
            }
        }
В итоге, мало того что вы тупите, так еще и зачем-то пытаетесь все представить так, будто я клянчу плюс. Мне важнее разобраться и помочь и прочитать: "спасибо мне это помогло", а на рейтинг плевать.

И признайтесь, что не прочитали тему "читать всем создающим темы в данном разделе!". Из-за того как вы оформили вопрос, никто и не хотел вам помогать, кроме меня. Но вы умудрились обидеть единственного, кто пытался вам помочь. Что ж... далеко пойдете.
1
РостикUSA
3 / 3 / 0
Регистрация: 29.10.2012
Сообщений: 41
10.12.2012, 00:55  [ТС] #5
Исправил ошибки, память выдиляеться. Спасибо
Но все равно .ехе вылетает после заполнения матрицы элементами.
Я написал - "заранее спасибо" - вам и этого мало.
И я хорошо знаком с правилами форума. =) В отличие от некоторых.
Тем более я вас не оскорблял, вы набросились первые на меня (перечитайте то, что написали выше)
То есть если у меня ошибка в коде - сразу "говнокод" ... что ж, и вы далеко пойдете. Это С для начинающих.Но этот спор не имеет смысла.
Поэтому я не хочу больше с вами спорить.

Может, потому что у меня Windows 8 стоит?
0
Миниатюры
Ошибка в коде  
РостикUSA
3 / 3 / 0
Регистрация: 29.10.2012
Сообщений: 41
11.12.2012, 00:13  [ТС] #6
Исправил.
Спасибо.
0
11.12.2012, 00:13
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.12.2012, 00:13

Ошибка в коде
#include&lt;stdio.h&gt; #include&lt;windows.h&gt; #include&lt;locale.h&gt; #define MAX_N 100 ...

Ошибка в коде
Короче задание просто до жути тупое. 1. Реализовать указанную в Вашем...

Задача. Ошибка в коде
Дано целое позитивное число. Узнать сумма чисел введенного числа является...


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

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

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