Форум программистов, компьютерный форум, киберфорум
Наши страницы
Visual C++
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.63/16: Рейтинг темы: голосов - 16, средняя оценка - 4.63
paska88
0 / 0 / 0
Регистрация: 25.08.2010
Сообщений: 21
1

Visual Studio 2008 и компиляция проекта

03.10.2010, 09:22. Просмотров 3046. Ответов 5
Метки нет (Все метки)

Здравствуйте. Пишу программу в Visual Studio 2008 и столкнулся со следующей проблемой. Когда компилирую и запускаю в отладчике то программа выдает верный результат. (причем только в конфигурации DEBUG), а стоит только перевести отладчик в режим RELEASE или закрыть VS и попробывать запустить программу... не важно какую (DEBUG или RELEASE) то результат выдается не верный и причем разный (от каждой конфигурации свой). Может кто сталкивался с таким явлением...?
В заранее большое спасибо!
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.10.2010, 09:22
Ответы с готовыми решениями:

Компиляция TightVNC в Visual Studio 2008: шквал error'ов. Откуда ?
Скачал со страницы Download TightVNC 2.0.3 исходники TightVNC Viewer. При попытке компиляции в MS...

Отличие сборок Visual Studio 2008 от Visual Studio 2010
Здравствуйте, товарищи! Пытаюсь собрать библиотеку libvbucket, используя Visual Studio 2008....

Компиляция и watch в Visual C++ 2008
поставил себе Visual C++ 2008 Express Edition взамен старому dos кому turbo c. Не могу понять как...

Вылетает Visual Studio 2008 из-за системы управления версиями Microsoft Visual SourceSafe.
Всем здравствуйте. Недавно установил VS 2008 sp1 rus. Хочу создать проект на VC++ (делаю всё...

Visual c++ 6, Studio 2005 или studio 2008????
Visual c++ 6, Studio 2005 или studio 2008???? Есть ли большая разница? Что лучше? 2008...

5
M128K145
Эксперт JavaЭксперт С++
8343 / 3564 / 420
Регистрация: 03.07.2009
Сообщений: 10,708
03.10.2010, 10:24 2
paska88, выложите код и задание
0
paska88
0 / 0 / 0
Регистрация: 25.08.2010
Сообщений: 21
03.10.2010, 10:31  [ТС] 3
это задача о ранце.
вот входные данные:
2 47
13 36
3 8
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
71
72
73
74
75
76
77
#include "stdafx.h"
#include <iostream>
#include <fstream>
#include <limits>
#include <conio.h>
using namespace std;
#define MAXN 100
 
int _tmain(int argc, _TCHAR* argv[])
{
    int cost[MAXN], w[MAXN];
    int n,TotalW,weight,i;
    bool take[MAXN][MAXN];
    int *dp;
  ifstream inp("data.txt");
    if(inp.fail())
    {
        cout <<"error! file not found!"<< endl;
        cout <<"Press any key to exit..."<< endl;
        _getch();
        return 0;
    } 
  inp >> n;  inp >> TotalW;
    for(i = 1; i <= n; i++)
    {
        inp >> w[i]; inp >> cost[i];
    }
    inp.close();
    for(i = 0; i <= TotalW; i++)take[0][i] = false;
 
    dp = new int[TotalW+1];
  dp[0]=0;  
    for( weight = 1; weight <=TotalW; weight++)
    {
        dp[weight] = numeric_limits<int>::min();
        for (i = 1; i <= n; i++)
        {
            if (w[i] <= weight)
            {
                dp[weight] = max(dp[weight], dp[weight - w[i]] + cost[i]);
                take[weight][i] = true;
            }
            else
            {
                dp[weight]=dp[weight-1];
                take[weight][i] = false; 
            }
        }
        cout <<"Weight: "<<weight<<" price: "<<dp[weight]<<endl;
    }
  cout <<endl;
    cout <<"Best price: "<< dp[TotalW] <<endl;
  delete[] dp;
    weight = TotalW;
    //выводим взятые товары
    cout <<"taken goods: ";
    int p=0,s=0,res;
    while (weight > 0)
    {
        i = n-1;
        while (i >= 0 && !take[weight][i]) i--;
        if (i >= 0)
        {   
            cout << i+1  <<" ";
            if(i == 0) p++;
          if(i == 1) s++;
            weight = weight-w[i];
        }
        else weight = 0;
    }
  res = w[1]*p+w[2]*s;
            //выводим вес взятых товаров
    cout <<endl<<"weight taken goods: "<<res<<endl;
    cout <<"Press any key to exit..."<<endl;
  _getch();
    return 0;
}
0
ForEveR
В астрале
Эксперт С++
8009 / 4766 / 654
Регистрация: 24.06.2010
Сообщений: 10,547
Завершенные тесты: 3
04.10.2010, 18:08 4
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
#include <iostream>//Хедер для ввода-вывода
 
bool isSimple(int a)//Функция возвращающая логическое значение. Один параметр - число
{
    bool flag=false;//Флаг ставим в false
    for(int i=2; i<=a/2; ++i)//Циклом от 2, до a/2, ибо 1 не простое, число никак не делится без остатка на число более чем число меньше чем оно само в два раза
    {
         if(a%i==0)//Если остаток от деления a на i равен нулю
         {
            flag=true;//Флаг ставим в положение true
            break;//Брякаем цикл
         }
     }
     if(flag)//Если переменная имеет значение true
        return false;//Возвращаем false
     return true;//Иначе true
}
 
void print_numbs(int a)//Функция печати чисел
{
     for(int i=2; i<=a/2; ++i)//То же, что и раньше
     {
          if(a%i==0)//Если без отстатка
          {
              if(isSimple(i))//Проверка на то простое ли это число, если да
                 std::cout<<i<<' ';//Пишем число
          }
     }
     std::cout<<std::endl;//Ставим пробел
}
 
int main()
{
     int a;
     std::cout<<"Enter a: ";//Сообщение на экран
     std::cin>>a;//Ввод a
     if(isSimple(a))//Если а простое
         std::cout<<"Numb "<< a <<" is simple\n";//Выводим сообщение что a - простое
     else//Если нет
         print_numbs(a);//Печатаем номера, являющиеся простыми делителями a
     return 0;//Возвращаем 0, как признак успешного завершения программы
}
C++
1
2
3
4
5
6
7
8
9
10
11
bool isSimple(int a)//Функция возвращающая логическое значение. Один параметр - число
{
    for(int i=2; i<=a/2; ++i)//Циклом от 2, до a/2, ибо 1 не простое, число никак не делится без остатка на число более чем число меньше чем оно само в два раза
    {
         if(a%i==0)//Если остаток от деления a на i равен нулю
         {
            return false;//Возвращаем false, число не простое
         }
     }
     return true;//Возвращаем true. Число простое.
}
Так будет корректнее.
1
Andrew_Lvov
Эксперт С++
260 / 190 / 10
Регистрация: 19.08.2010
Сообщений: 760
Записей в блоге: 1
04.10.2010, 22:22 5
Цитата Сообщение от paska88 Посмотреть сообщение
for(i = 1; i <= n; i++)
* * * * {
* * * * * * * * inp >> w[i]; inp >> cost[i];
* * * * }
Индексы в массивах С/С++ начинаются с нуля.
0
Dimaska
0 / 0 / 0
Регистрация: 02.10.2010
Сообщений: 5
05.10.2010, 12:48 6
спасибо большое
0
05.10.2010, 12:48
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.10.2010, 12:48

Преобразование проекта из visual c++ 6.0 в ms visual studio 2010
Есть проект написанный на visual c++ 6.0. Задача состоит в том, чтобы преобразовать проект в ms...

Visual Studio 2008
Здравствуйте! Господа, подскажите пожалуйста, существуют ли бесплатные версии VS. И если...

Особенность visual studio 2008
Project - Options - VC++ Directories - в visual studio 2010 он присутствует, а в vs 2008 этого...


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

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

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