Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Visual C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.03.2012, 22:23   #1
Тёма_)
Пользователь
 
Регистрация: 12.11.2011
Сообщений: 68
Смущение Проблема с массивом

Задан массив А(10). Получить из него массив В, состоящий из элементов массива А, которые больше 0.
Цитата:
#include<stdio.h>
#include<iostream>
#include <math.h>
int main()
{
int shet = 0;
int n = 50;
int *mas_B = new int[n];
int mas_A[10] = {10,-3,5,4,1,130,0,-5,6,-1};
//mas_A = random(10);
for (int i = 0; i <= 10; i++)
{
if ( mas_A[i] > 0)
{
shet = shet + 1;
mas_A[i] = mas_B[shet];
scanf("%d",&mas_B[shet]);
}
}
delete [] mas_B;
delete [] mas_A;
}
--------------------------------------------------------------------------
1. все компилит, но на экране не чего нет , но в debug выдает :
The thread 'Win32 Thread' (0x10ec) has exited with code -1073741510 (0xc000013a).
The program '[3508] proekt.exe: Native' has exited with code -1073741510 (0xc000013a).
что то не так делаю с массивом?
--------------------------------------------------------------------------
2. еще вопрос как сделать правильно рандом, все методы которые находил не работали...
3. Динамический массив mas_B правильно сделал? если нет, объясните как?
Использую визуал 2010 экспресс.

Последний раз редактировалось Тёма_); 21.03.2012 в 22:29.
Тёма_) вне форума Ответить с цитированием
Старый 21.03.2012, 22:38   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
но на экране не чего нет
Поставь задержку: getchar() в конце, и пусть консоль ждет когда ты налюбуешся своими результами.
Код:
mas_A = srand()%10;
Это рандом в Си
Цитата:
Динамический массив mas_B правильно сделал?
Сойдет.
Цитата:
delete [] mas_A;
Этот массив не динамический. Его нельзя вот так освобождать - тут программа должна вылетать.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 21.03.2012, 22:46   #3
Тёма_)
Пользователь
 
Регистрация: 12.11.2011
Сообщений: 68
По умолчанию

вылетает просто черное окно без результатов и весит... может scanf не там где нужно? по идее все верно(
Тёма_) вне форума Ответить с цитированием
Старый 21.03.2012, 22:49   #4
Тёма_)
Пользователь
 
Регистрация: 12.11.2011
Сообщений: 68
По умолчанию

Код:
#include<stdio.h>
#include<iostream>
#include <math.h>
int main()
{
  int shet = 0;
  int n = 50;
  int *mas_B = new int[n];
  int mas_A[10] = {10,-3,5,4,1,130,0,-5,6,-1};
  for (int i = 0; i <= 10; i++)
       {
          if ( mas_A[i] > 0) 
              {
                shet = shet + 1;
                mas_A[i] = mas_B[shet];
		scanf("%d",&mas_B[shet]);
              }
		  getchar();
        } 
	delete [] mas_B;
}
вот так должно выглядеть, да?

Последний раз редактировалось ACE Valery; 21.03.2012 в 22:57.
Тёма_) вне форума Ответить с цитированием
Старый 21.03.2012, 22:53   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
может scanf не там где нужно?
А кстати - зачем ты его используешь? У тебя итак массив введен, а ты его накрываешь новыми значениями от пользователя. Зачем?
Код:
#include<stdio.h>
#include<iostream>
#include <math.h>
int main()
{
int shet = 0;
int n = 10;
int *mas_B = new int[n];
int mas_A[10] = {10,-3,5,4,1,130,0,-5,6,-1};
for (int i = 0; i < 10; i++)  if ( mas_A[i] > 0)  mas_B[shet++]=mas_A[i];
for (; shet>=0; shet--)  printf("%d\t",mas_B[shet]);
delete [] mas_B;
}
Понял куда копать?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 21.03.2012, 22:55   #6
Тёма_)
Пользователь
 
Регистрация: 12.11.2011
Сообщений: 68
По умолчанию

Да спасибо, щас попробую)
Тёма_) вне форума Ответить с цитированием
Старый 21.03.2012, 23:31   #7
Тёма_)
Пользователь
 
Регистрация: 12.11.2011
Сообщений: 68
По умолчанию


выдает такой вот ответ, причем при любом массиве А
код:
Цитата:
#include<stdio.h>
#include<iostream>
#include <math.h>
int main()
{
int shet = 0;
int n = 10;
int *mas_B = new int[n];
int mas_A[10] = {10 , -3 , 5 , 4 , 1 , 130 , 0 , -5 ,6 , -1};
for (int i = 0; i <= 10; i++)
{
if ( mas_A[i] > 0)
{
shet = shet + 1;
mas_B[shet++] = mas_A[i];
for (; shet>=0; shet--)
{
printf("%d %s\t",mas_B[shet], " ; ");
}
}
}
delete [] mas_B;
getchar();
}
Может просто инфа забилась и не обновляется или почему такое может быть?

Последний раз редактировалось Тёма_); 21.03.2012 в 23:41.
Тёма_) вне форума Ответить с цитированием
Старый 21.03.2012, 23:44   #8
Тёма_)
Пользователь
 
Регистрация: 12.11.2011
Сообщений: 68
По умолчанию

ой нет все норм)
Тёма_) вне форума Ответить с цитированием
Старый 21.03.2012, 23:46   #9
Тёма_)
Пользователь
 
Регистрация: 12.11.2011
Сообщений: 68
По умолчанию

вот код, может кому понадобиться
Цитата:
#include<stdio.h>
#include<iostream>
#include <math.h>
int main()
{
int shet = 0;
int n = 10;
int *mas_B = new int[n];
int mas_A[10] = {10 , -3 , 5 , 4 , 1 , 130 , 0 , -5 ,6 , -1};
for (int i = 0; i <= 10; i++)
{
if ( mas_A[i] > 0)
{
shet = shet + 1;
mas_B[shet] = mas_A[i];
for (; shet>=0; shet--)
{
printf("%d %s\t",mas_B[shet], " ; ");
}
}
}
delete [] mas_B;
getchar();
}
Большое спасибо, Stilet )
Тёма_) вне форума Ответить с цитированием
Старый 22.03.2012, 00:01   #10
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Да не за что )
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема с массивом Moderntoss Общие вопросы C/C++ 4 21.04.2011 21:52
Проблема с массивом !!! drylozav Помощь студентам 49 10.10.2010 13:29
проблема с массивом kommunist Паскаль, Turbo Pascal, PascalABC.NET 7 27.05.2010 19:00
проблема с массивом kommunist Помощь студентам 6 14.11.2007 18:36
проблема с массивом Lonix Общие вопросы Delphi 2 06.11.2007 23:56