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

Программа запускается, но работает некорректно - C++

Восстановить пароль Регистрация
 
delpors
 Аватар для delpors
3 / 3 / 1
Регистрация: 14.05.2013
Сообщений: 20
06.07.2013, 10:42     Программа запускается, но работает некорректно #1
Недавно начал изучать С++, перешел к указателям. Написал небольшой код, компилятор почти никаких ошибок не выводит, программа запускается но работает не правильно, после того как ввожу значения, закрывается.
Миниатюры
Программа запускается, но работает некорректно  
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.07.2013, 10:42     Программа запускается, но работает некорректно
Посмотрите здесь:

C++ оператор if, некорректно работает программа
C++ некорректно работает программа
Почему программа работает некорректно? C++
C++ некорректно работает программа
Некорректно работает программа C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
castaway
Эксперт С++
4848 / 2987 / 368
Регистрация: 10.11.2010
Сообщений: 11,028
Записей в блоге: 10
Завершенные тесты: 1
06.07.2013, 10:53     Программа запускается, но работает некорректно #2
Поставь system( "pause" ); между 9-й и 10-й строками.
delpors
 Аватар для delpors
3 / 3 / 1
Регистрация: 14.05.2013
Сообщений: 20
06.07.2013, 13:03  [ТС]     Программа запускается, но работает некорректно #3
[QUOTE=lazybiz;4812189]Поставь system( "pause" ); между 9-й и 10-й строками.[/а QUOTE]
а system() из какой библиотеки?
nexen
187 / 180 / 3
Регистрация: 27.01.2012
Сообщений: 1,335
06.07.2013, 13:09     Программа запускается, но работает некорректно #4
delpors, stdlib.h
delpors
 Аватар для delpors
3 / 3 / 1
Регистрация: 14.05.2013
Сообщений: 20
06.07.2013, 13:14  [ТС]     Программа запускается, но работает некорректно #5
функцию вставил, но программа работает также
120°
12 / 10 / 1
Регистрация: 01.07.2013
Сообщений: 62
06.07.2013, 13:14     Программа запускается, но работает некорректно #6
delpors, у вас в программе еще одна небольшая проблема. там из одной функции возвращается адрес локальной переменной. нехорошо...
delpors
 Аватар для delpors
3 / 3 / 1
Регистрация: 14.05.2013
Сообщений: 20
06.07.2013, 13:18  [ТС]     Программа запускается, но работает некорректно #7
В начале была эта ошибка, но программа работала, после того как вставил указатели, работать отказалась.
castaway
Эксперт С++
4848 / 2987 / 368
Регистрация: 10.11.2010
Сообщений: 11,028
Записей в блоге: 10
Завершенные тесты: 1
06.07.2013, 13:36     Программа запускается, но работает некорректно #8
Будь так любезен, скопируй то что у тебя получилось с изменениями сюда.
delpors
 Аватар для delpors
3 / 3 / 1
Регистрация: 14.05.2013
Сообщений: 20
06.07.2013, 13:41  [ТС]     Программа запускается, но работает некорректно #9
ну вот
Миниатюры
Программа запускается, но работает некорректно  
delpors
 Аватар для delpors
3 / 3 / 1
Регистрация: 14.05.2013
Сообщений: 20
06.07.2013, 13:46  [ТС]     Программа запускается, но работает некорректно #10
мне кажется проблема здесь show(del+5,&d)
Dani
1263 / 621 / 50
Регистрация: 11.08.2011
Сообщений: 2,236
Записей в блоге: 2
Завершенные тесты: 1
06.07.2013, 13:49     Программа запускается, но работает некорректно #11
delpors, лучше скинь код, а не скриншот.
delpors
 Аватар для delpors
3 / 3 / 1
Регистрация: 14.05.2013
Сообщений: 20
06.07.2013, 13:51  [ТС]     Программа запускается, но работает некорректно #12
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
#include <iostream>
double kol=0;
double *(sab)(double *(*massive),int a);
void show(double *(*massive),double *(*a));
int main(){
    double *d;
    double *del[5];
    *d=*sab(del+5,5);
    show(del+5,&d);
}
double *(sab)(double *(*massive),int a){//функция заполняет массив и возвращает
                      //реальный его размер
    for (int s=0;s<a;s++){
        std::cout<<"Введите значения ";
        std::cin>>*(*massive+s);
        if (!std::cin)
            break;
        kol+=1;
    }
    return &kol;
}
void show(double *(*massive),double *(*a)){//функция выводит содержимое массива
    for (int s=0;s<*(*a);s++){
    std::cout<<"Значения массива "<<*(*massive+s)<<std::endl;
    }
 
}
castaway
Эксперт С++
4848 / 2987 / 368
Регистрация: 10.11.2010
Сообщений: 11,028
Записей в блоге: 10
Завершенные тесты: 1
06.07.2013, 14:03     Программа запускается, но работает некорректно #13
Где у тебя system( "pause" ); ?
Сейчас в чем проблема?
delpors
 Аватар для delpors
3 / 3 / 1
Регистрация: 14.05.2013
Сообщений: 20
06.07.2013, 19:54  [ТС]     Программа запускается, но работает некорректно #14
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
#include <iostream>
#include <stdlib.h>
double kol=0;
double *(sab)(double *(*massive),int a);
void show(double *(*massive),double *(*a));
int main(){
    double *d;
    double *del[5];
    *d=*sab(del+5,5);
    show(del+5,&d);
    system("pause");
}
double *(sab)(double *(*massive),int a){//функция заполняет массив и возвращает
                      //реальный его размер
    for (int s=0;s<a;s++){
        std::cout<<"Введите значения ";
        std::cin>>*(*massive+s);
        if (!std::cin)
            break;
        kol+=1;
    }
    return &kol;
}
void show(double *(*massive),double *(*a)){//функция выводит содержимое массива
    for (int s=0;s<*(*a);s++){
    std::cout<<"Значения массива "<<*(*massive+s)<<std::endl;
    }
 
}]
да вставил я его, никаких изменений

Добавлено через 5 часов 40 минут
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
#include <iostream>
double kol=0;
double *(sab)(double *massive,int a);
void show(double *massive,double *a);
int main(){
    double *d;
    double del[5];
    *d=*sab(del,5);
    show(del,&(*d));
}
double *(sab)(double *massive,int a){//функция заполняет массив и возвращает
                                        //реальный его размер
    for (int s=0;s<a;s++){
        std::cout<<"Введите значения ";
        std::cin>>*(massive+s);
        if (!std::cin)
            break;
        kol+=1;
    }
    return &kol;
}
void show(double *massive,double *a){//функция выводит содержимое массива
    for (int s=0;s<*a;s++){
    std::cout<<"Значения массива "<<*(massive+s)<<std::endl;
    }
 
}
Я нашел мои ошибки, теперь она работает. Спасибо всем кто пытался мне помочь.
castaway
Эксперт С++
4848 / 2987 / 368
Регистрация: 10.11.2010
Сообщений: 11,028
Записей в блоге: 10
Завершенные тесты: 1
06.07.2013, 19:57     Программа запускается, но работает некорректно #15
delpors, и в чем же была ошибка?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.07.2013, 20:20     Программа запускается, но работает некорректно
Еще ссылки по теме:

Программа в vs не запускается; в dev запускается, но зависает C++
C++ Некорректно работает программа. Бесконечный цикл
C++ Программа работает некорректно, в результате выводятся заданные изначально значения

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

Или воспользуйтесь поиском по форуму:
delpors
 Аватар для delpors
3 / 3 / 1
Регистрация: 14.05.2013
Сообщений: 20
06.07.2013, 20:20  [ТС]     Программа запускается, но работает некорректно #16
в передаче параметров в функцию void show(double *massive,double *a), я в место значения передавал адрес, т.е в место show(del,&(*d)) я передавал show(del,&d)), и в прототипе void show(double *massive,double *a) допустил ошибку- void show(double *(*massive),double *(*a)), может я не совсем правильно объяснил, но ошибки были именно в них.

Добавлено через 2 минуты
короче я все перевернул с ног на голову
Yandex
Объявления
06.07.2013, 20:20     Программа запускается, но работает некорректно
Ответ Создать тему
Опции темы

Текущее время: 16:22. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru