Вниз  C / C++
- 20.09.2011 / 13:17
blood_elf
  Пользователь

blood_elf 
Сейчас: Offline
Дайте пожалуйста прямую ссылку на книгу по c++.
- 20.09.2011 / 15:52
RGT
  Пользователь

RGT 
Сейчас: Offline
В одномерном массиве целых чисел заменить минимальное значение средним арифметическим его элементов, находящихся на четных позициях.Написать с использованием динамического одномерного массива.
Саму программу я и сам напишу, но что-то с динамическими массивами не могу разобраться...
__________________
 don't tread on me
- 20.09.2011 / 19:38
RedSky
  Пользователь

RedSky 
Сейчас: Offline
RGT, Разве в С++ есть динамические массивы? Он, вроде, умеет работать только со статическими данными, исключение dynamic_cast.
- 20.09.2011 / 20:17
aNNiMON
  Супервизор

aNNiMON 
Сейчас: Offline
RedSky, умеет. Во-первых можно использовать vector:
#include <vector.h>
vector<int> array;
array.resize(256);
во-вторых:
int *dinamicArray = new int[256];
delete[] dinamicArray;
Вот такая вот конструкция.
__________________
 let live
- 20.09.2011 / 20:22
RedSky
  Пользователь

RedSky 
Сейчас: Offline

Изменено aNNiMON (20.09 / 20:30) (всего 1 раз)
- 21.09.2011 / 10:36
RGT
  Пользователь

RGT 
Сейчас: Offline
RedSky, еще через указатели можно.
Уже не надо. Сегодня на ленте сделал =D Только без среднего арифметического на четных позициях.
__________________
 don't tread on me
- 21.09.2011 / 11:17
aNNiMON
  Супервизор

aNNiMON 
Сейчас: Offline
RGT, Так это легко, проходишь по всему циклу, и если элемент четный, то прибавляешь единицу к какому-нить индексу, и к большому числу прибавляешь значение этого элемента. Потом дели большое число на значение индекса.
__________________
 let live
- 21.09.2011 / 12:44
RGT
  Пользователь

RGT 
Сейчас: Offline
aNNiMON, у меня постоянно цикл в бесконечность уходил
__________________
 don't tread on me
- 21.09.2011 / 14:27
RGT
  Пользователь

RGT 
Сейчас: Offline
  1. #include "stdafx.h"
  2. #include <clocale>
  3.  
  4. int _tmain(int argc, _TCHAR* argv[])
  5. {
  6.     setlocale (LC_ALL, "Russian");
  7.     setlocale (LC_ALL, "rus");
  8.  
  9.     int i, size, end, j, menu = 0;
  10.     float **a = NULL;
  11.  
  12.     do {
  13.         printf("Введите размерность квадратной матрицы: ");
  14.         scanf("%d", (int) &size);
  15.     }
  16.     while(size<=0);
  17.  
  18.     a = new float*[size];
  19.     for (i=0; i<size; i++);
  20.     {
  21.         a[i]= new float [size]();
  22.     }
  23.  
  24.  
  25.     do {
  26.         do {
  27.         printf("\nМеню программы\n\t1) Ввод элементов массива\n\t2) Обработка массива\n\t3) Вывод элементов массива\n\t4) Выход\n\n");
  28.         scanf("%d", &menu);
  29.         }
  30.         while (menu<=0 || menu>4);
  31.  
  32.         if(menu==1)
  33.         {
  34.         printf("Введите элементы массива...\n");
  35.             for(i=0; i<size; i+1)
  36.             {
  37.                 for(j=0; j<size; j+1)
  38.                 {
  39.                     scanf("%f", &a[i][j]);
  40.                 }
  41.             }
  42.         printf("Ввод элементов массива завершен!");
  43.         }
  44.  
  45.         if(menu==2)
  46.         {
  47.         }
  48.  
  49.         if(menu==3)
  50.         {
  51.         }
  52.  
  53.         if(menu==4)
  54.         {
  55.         }
  56.  
  57.  
  58.     }
  59.     while(end==0);
  60.  
  61.     delete []a;
  62.     return 0;
  63. }

При попытки записи значения в элемент двумерного массива вылетает такое:
Необработанное исключение в "0x101df2dc (msvcr100d.dll)" в "lw_2.exe": 0xC0000005: Нарушение прав доступа при записи "0xcdcdcdcd".Где ошибка?
__________________
 don't tread on me
- 21.09.2011 / 14:48
RGT
  Пользователь

RGT 
Сейчас: Offline
  1. for (i=0; i<size; i++);
  2.         {
  3.                 a[i]= new float [size]();
  4.         }

:facepalm:
__________________
 don't tread on me

Изменено RGT (21.09 / 14:49) (всего 2 раза)
Наверх  Всего сообщений: 2777
Фильтровать сообщения
Поиск по теме
Файлы топика (111)