Форум программистов, компьютерный форум CyberForum.ru

немогу найти, почему висьнет программа... - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Функция kbhit http://www.cyberforum.ru/cpp/thread38104.html
Это опять я:) Не работает kbhit Нужно, чтобы во время рисования кривой Гильберта большого порядка пользователь имел возможность остановить рисование Вот исходный код #include<stdio.h> #include<conio.h> #include<stdlib.h> #include<math.h> #include<dos.h>
C++ Вывести на экран "уникальные" элементы массива 1 Есть массив, вывести на экран все элементы, которые встречаются хотя-бы дважды 2 Вывести на экран "уникальные" элементы. ЗЫ использовать только <iostream> http://www.cyberforum.ru/cpp/thread37848.html
Подсчет суммы компонентов классов C++
Люди подскажите плз написал прогу: //--------------------------------------------------------------------------- #include <iostream> #pragma hdrstop using namespace std; //--------------------------------------------------------------------------- #pragma argsused
сравнение двух лиц людей C++
Здравствуйте! подскажите пожалуйста, есть ли в сети готовые библиотеки на Си или С++, которые выдают % схожести одного лица на другое(типа look.com) ? особенно интересно для ембедед. может кто уже занимался.(готов даже купить работающую) Спасибо!
C++ Откорректировать текст, чтобы с заглавной буквы были написаны только фамилии и первые слова в предложениях http://www.cyberforum.ru/cpp/thread37442.html
1. Ввести список фамилий студентов в группе, запросить связный текст, состоящий из нескольких предложений, где используются ранее введенные фамилии. Откорректировать введенный текст так, чтобы с заглавной буквы были написаны только фамилии и первые слова в предложениях. я не могу понять, как можно сделать ввод этих фамилий, и как с ними дальше работать, вот что я сделал, но оно пока не...
C++ Выборка из массива У меня есть программка, которая выполняет,при длине L четной, то удаляются 2 первых и 2 последних символа; #include<iostream.h> #include<string.h> #include<stdlib.h> #include<stdio.h> #include<conio.h> #define SIZE 255 class x { char *str; подробнее

Показать сообщение отдельно
XuTPbIu_MuHTAu
Эксперт C++
2221 / 736 / 10
Регистрация: 27.05.2008
Сообщений: 1,508
04.06.2009, 12:09     немогу найти, почему висьнет программа...
При каком вводе зависвает программа? Нет времени,чтобы изучать всю программу,уж извини.

Добавлено через 17 минут 8 секунд
смутило очень сильно :
в функции matrix :
C++
1
return **A1,**B1,**C
в сочетании с таким кодом :
C++
1
2
3
**A1=matrix(N, A, B, k, A1, B1, C);
**B1=matrix(N, A, B, k, A1, B1, C);
**C=matrix(N, A, B, k, A1, B1, C);
Итак,из matrix вернется ТОЛЬКО ОДНО значение,если быть точным - значение **C. Но это еще куда ни шло,не учитывая,что **C - это одно число типа double. В итоге в каждом вызове matrix будет создано три(если не ошибаюсь,бегло смотрел) матрицы, каждая из которых "там и останется", потому что из функции возвращается какое-то дробное число,а вовсе не указатель на начало матрицы или что-там-еще.
дальше.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
double input_massiv1(int N ,double **A)
{
        int i,j;
        printf(" Г‡Г*ïîëГ*ГЁГІГҐ Г¬Г*Г±Г±ГЁГў A:\n");
 
        for ( i=0; i<N; i++)
                for ( j=0; j<N-i; j++)
                {
                        printf ("A[%d][%d] = ",i,j);
                        A[i][j]=zashita_elem();
                }
                return **A;
}
1. Зачем две функции -для ввода каждой матрицы? Можно было сэкономить и сделать одну,а строку,которую показывать - в качестве параметра.Но это ладно. Тут опять неясные return **a, а на том конце вызывающей - **A = input_massiv1. Этот оператор приравняет первый элемент матрицы A самому себе...) зачем?

Зависает определенно из-за рекурсии.Суть рекурсии в том,чтобы свести задачу к более простой,от меньшего числа данных,например.У тебя рекурсия выглядит так :
C++
1
2
3
4
5
int recursia(int N) {
...
...
recursia(N);
}
Покажу правильную рекурсию на примере факториала:
C++
1
2
3
4
5
6
7
8
int factorial(int n) {
if(n==1) return 1;
return n* factorial (n-1);// рекурсия сама получит выражение n*(n-1)*(n-2)*....*2*1.
                      //рекурсия от того же параметра не вызывается и есть условие 
                     //завершения.Заметь,что вызов рекурсивный влияет на возвр. 
                    //значение.У тебя - нет.У тебя просто повторно произойдет то же 
                    //самое.
}
Все,больше у меня времени нет смотреть.Побежал сам. Вечером загляну.

Добавлено через 4 минуты 54 секунды
Ну а это что?
C++
1
2
3
4
for (i=0; i<N; i++)
  for (j=0; j<N; j++) //этот ЦИКЛ запустится N раз                                    
        A1[i]=(double*)realloc(0,N*sizeof(double));//а эта строка в сумме выполнится N*N
B1[i]=(double*)realloc(0,N*sizeof(double)); //а эта ТОЛЬКО ОДИН раз
Добавлено через 17 секунд
:'(

Добавлено через 3 минуты 11 секунд
Вечером приду - помогу посерьезней
 
Текущее время: 19:44. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru