Форум программистов, компьютерный форум, киберфорум
Наши страницы

C для начинающих

Войти
Регистрация
Восстановить пароль
 
РостикUSA
3 / 3 / 0
Регистрация: 29.10.2012
Сообщений: 41
#1

Ошибка в коде - C (СИ)

08.12.2012, 23:50. Просмотров 409. Ответов 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
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Ошибка в коде (C (СИ)):

Ошибка в коде - C (СИ)
Подскажите пожалуйста, почему после прохождения цикла for в input выдаёт ошибку: &quot;Необратотанное исключение&quot;? #include&quot;stdafx.h&quot; ...

Ошибка в коде - C (СИ)
#include&lt;stdio.h&gt; #include&lt;windows.h&gt; #include&lt;locale.h&gt; #define MAX_N 100 int main() { setlocale(LC_ALL, &quot;rus&quot;); ...

Ошибка в коде! - C (СИ)
Здравствуйте! Помоги пожалуйста найти ошибку в коде. Между ответами большое расхождение, не должно быть такое! Задание: Даны...

где ошибка в коде ? - C (СИ)
#define _CRT_SECURE_NO_WARNINGS #include &lt;stdio.h&gt; #include &lt;stdlib.h&gt; #include &lt;malloc.h&gt; #include &lt;locale.h&gt; ...

Задача. Ошибка в коде - C (СИ)
Дано целое позитивное число. Узнать сумма чисел введенного числа является парным числом или нет. При вводе не целого числа должна...

Ошибка в простеньком коде функции - C (СИ)
#define _CRT_SECURE_NO_WARNINGS #include &lt;stdio.h&gt; #include &lt;math.h&gt; float g(float x); int main() { float x; ...

5
polyaKIDze
63 / 63 / 12
Регистрация: 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 / 12
Регистрация: 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
Привет! Вот еще темы с ответами:

Сортировка строк - ошибка в коде - C (СИ)
Здравствуйте! Прошу помощи в решении задачи. Нужно создать функцию для заполнения массива в диапазоне, указанном пользователем, функцию...

Шифр Цезаря - ошибка в коде - C (СИ)
Добрый день похожих вариантов задания было много, но не нашла ответа на свой вопрос. Как все таки доделать что бы была шифровка и...

Ошибка в коде (перевод с паскаля) - C (СИ)
есть код на паскале uses crt; var a,b,c:longint; begin clrscr; write('Введите целое положительное число a='); readln(a); ...

Ошибка в коде - не работает цикл - C (СИ)
Ребята, просто умоляю, помогите, скажите, что не так с кодом, где ошибки? Сейчас делаю только основание программы, до момента, когда нужно...


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

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

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