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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 30.10.2010, 23:47   #1
Anuta606
 
Регистрация: 28.10.2010
Сообщений: 6
Сообщение Создание динамического масива структур

Немонимаю почему выбивает ошибку через раз, на каком то действии???
Код:
#include<iostream>
#include<ctime>
#include<cstdlib>
using namespace std;
struct Sh
{
	char *Ne;
	char *Ma;
	float Pr;
};
int main()
{
	srand(time(NULL));
	Sh *I=new Sh[20];
	for(int i=0;i<20;i++)
	{
		int a=0;
		a=rand()%100;
		if((a)>60) {I[i].N="Tel";}
		if(a<60 && a>30) {I[i].N="Mag\0";}
		if(a<30 && a>0) {I[i].N="DV     \0";}
		a=rand()%100;
		if((a)>75) {I[i].M="SO      \0";}
		if(a<75 && a>50) {I[i].M="PH\0";}
		if(a<50 && a>25) {I[i].M="SNG\0";}
		if(a<25 && a>0) {I[i].M="SH     \0";}
		a=rand()%100;
		I[i].Pr=a*10.2f;
	}
	for(int i=0;i<20;i++)
	{
		cout<<I[i].N<<"\t"<<I[i].M<<"\t"<<I[i].Pr<<"\n";
	}
	cin.get();
	cin.get();
}
подскажите пожалуйста

Последний раз редактировалось Stilet; 31.10.2010 в 11:17.
Anuta606 вне форума Ответить с цитированием
Старый 31.10.2010, 00:17   #2
eoln
Старожил
 
Аватар для eoln
 
Регистрация: 26.04.2008
Сообщений: 2,645
По умолчанию

А почему поля в описании структуры и в главной ф-ии не совпадают?
Не учтены варианты со строгим равенством
Код:
if((a)=>60) {I[i].N="Tel";}
if(a<60 && a>=30) {I[i].N="Mag\0";}
if(a<30 && a>=0) {I[i].N="DV \0";}
Ну и дальше аналогично вниз по тексту
eoln вне форума Ответить с цитированием
Старый 31.10.2010, 06:47   #3
atenon
Форумчанин
 
Регистрация: 05.12.2009
Сообщений: 253
По умолчанию

Еще добавлю.
Код:
a=rand()%100;
В моем компиляторе эта строка один раз генерирует ноль, в результате согласно условиям
Код:
if(a<30 && a>0) {I[i].Ne="DV \0";}
и
Код:
if(a<25 && a>0) {I[i].Ma="SH \0";}
поля остаются неинициализированными, что в итоге приводит к мату компилятора.

Правда eoln это уже показал. Но так думаю понятнее....
Приходится бежать со всех ног, чтобы только остаться на том же месте! Если хочешь попасть в другое место, тогда нужно бежать по меньшей мере вдвое быстрее! Льюис Кэрол

Последний раз редактировалось atenon; 31.10.2010 в 06:50.
atenon вне форума Ответить с цитированием
Старый 31.10.2010, 20:04   #4
Anuta606
 
Регистрация: 28.10.2010
Сообщений: 6
По умолчанию

Спасибо большое!!!!!!
Anuta606 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Обработка и сортировка 2 мерного динамического масива FatalLight Общие вопросы C/C++ 13 07.09.2010 12:03
проверка динамического масива Лубышев Помощь студентам 3 31.08.2009 00:00
Удаление записи из динамического масива... Altera Общие вопросы Delphi 4 09.06.2008 09:15
СОХРАНИЯ В ФАЙЛ ДВУМЕРНОГО ДИНАМИЧЕСКОГО МАСИВА!!!! _FL@ER_ Помощь студентам 2 23.06.2007 16:31