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

динамический массив - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ из Си в C++ http://www.cyberforum.ru/cpp-beginners/thread782817.html
Вобщем пишу расширение для php, начинал писать на чистом Си и всё было отлично, но в один прекрастный день решил что Си мне мало и изменить код под C++, поменял просто имя файла с main.c на main.cpp и проэкт перестал компилится. Ошибки undefined reference to `_imp__gc_globals_id' undefined reference to `_imp__executor_globals_id' Первая указывает на строку где вызывается макрос GC_G...
C++ Рекурсия #include "stdafx.h" #include <iostream> const int n=4; void swap(int &x,int &x1); void pt(int* a1,int n1,int z); int main() {int a={1,2,3,4}; pt(a,n,23); system("pause"); return 0;} http://www.cyberforum.ru/cpp-beginners/thread782801.html
Определитель матрицы на CUDA Cи C++
Здравствуйте! прошу прощения если я создал тему не в том разделе! Надо написать программу которая вычисляет определитель матрицы 3х3 на CUDA C. На С++ я написал программу и перенес ее на CUDA, ео столкнулся с проблемой вывода треугольной матрицы и подсчета определителя.#include <stdio.h> #include <stdlib.h> #include <iostream> #include <conio.h> #include <math.h> #define SIZE 3
Компьютер угадывает число C++
Пользователь загадывает число от 1 до 100 и компьютер пытается угадать. На каждую попытку компьютера пользователь отвечает, больше (h) искомое число, или меньше (l). Я попытался реализовать это,уменьшая границы рандома. Например, я загадал 26. Если компьютер пишет 50, я отвечаю 'l'. Тогда рандом принимает вид rand()%50+1. Компьютер пишет 25, я отвечаю 'h', тогда рандом принимает вид rand()%50+25....
C++ Автоматические тесты http://www.cyberforum.ru/cpp-beginners/thread782788.html
Добрый вечер. Пишу для курсового проекта автоматические тесты для одной формы довольно обширного проекта. Есть функция, проверяющая текущий трек(проект связан с радиолокацией). Функция: void TFormWaves::CheckTrack(AnsiString TrackNum) { if (TrackNum == "") { //ShowMessage("Введите номер трассы!");
C++ Найти: средний результат; всех воспитанников заданного тренера помогите написать задание. Представить данную в варианте информацию в виде структуры. Реализовать функции считывания из файла/консоли и записи в файл/консоль полученной структуры. Сформировать набор данных (массив), где каждый элемент является разработанной структурой. Этот набор тоже может быть оформлен как структура. Участник спортивного соревнования: фамилия, фамилия тренера и результат.... подробнее

Показать сообщение отдельно
Genn55
360 / 207 / 39
Регистрация: 26.12.2012
Сообщений: 694

динамический массив - C++

09.02.2013, 23:03. Просмотров 405. Ответов 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
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
#include <iostream>
#include <iomanip>
#include <cmath>
 
using namespace std;
 
int main()
 
 {
  const int size = 30;//объявляем массив на 30 элементов
  double  A[size] = {0.25,0.28,0.3,0.315,0.335,0.355,0.38,0.4,0.45,0.5,0.53,0.56,0.6,0.63,
                 0.67,0.71,0.75,0.8,0.85,0.9,0.95,1.0,1.06,1.12,1.18,1.25,1.32,1.40,1.45,1.5};
  double  const pi = 3.14159;
  double temp;
  double S =1,G = 0.4;//это можно менять произвольно
  int a,b,c,i,j,k,t;
  float flag =1;
 
   b = 0; c = 0;t = 0;
 
   for (;;)
 
    {
  double  *B = new double  [size];//динамический массив
 
       for ( i = 0; i < size; i++)//верхний интервал диаметров задаются с клавиатуры
         for ( i = 0; i < size; i++)// нижний интервал диаметров задаются с клавиатуры
 
            {
         if(A[i] >= 0.75 && A[i]<= 0.9)// если это выбранный интервал произвольный
 
            B[b++] =((A[i]/2)*(A[i]/2))*pi;//заполняем массив
 
            }
 
       for ( i = 0; i < b; i ++)                 //перебираем все значения
         for ( j = i; j < b; j ++)            //из полученного интервала
            for ( k = i; k < b; k ++)         //циклами i,j,k
              for ( a = i;  a <= b*3;a ++ )   //этим циклом просматриваем все варианты
 
 
     if ((i+j+k==a)&&((i==0)||((i==j)&&(j==k)&&(i==k))))
 
       {
 double  *AB = new double  [size];//временный массив будет хранить разницу
     AB[a] = S - (B[j] + B[i] + B[k]); //заполняем
 
          temp = AB[a];
         if ((AB[a] >= -G)&&(AB[a] <=G))
            {
          AB[a]=AB[t];
          AB[t]=temp; //оставляем в выбранном интервале
 
              cout << setw(15)<<setprecision(3) << 2*(sqrt ((B[i])/pi))
                   << setw(15) << 2*(sqrt ((B[j])/pi))
                   << setw(15) << 2*(sqrt ((B[k])/pi))
                   << setw(15)<<setprecision(4)
                   << AB[t]<< endl;
 
 delete [] AB;//удаляем временный массив
 
            }
 
        }
cout <<"Prodoljit?"<<endl;
cin >> flag;
if (flag ==1)
 ;//пустой оператор
else
break;
 
delete [] B;
    }
return 0;
 
 }
А проблема вот в чем.Работает он правильно один раз.Если выбирается выход все нормально.Продолжить значения накапливаются и когда достигает размера массива программа виснет и выдается ошибка. Без цикла работает,а в цикле нет.В чем проблема не пойму.Кто сможет пожалуйста растолкуйте чайнику.
Заранее всем спасибо.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru