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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 06.02.2014, 00:52   #1
novakvdele
Новичок
Джуниор
 
Регистрация: 06.02.2014
Сообщений: 6
По умолчанию Динамический массив структур

Разместить в динамической памяти массив из 10 структур, содержащий такую информацию о преподователе: Фамилия, Кафедра, Должность, Зарплата. И заполнить третий элемент массива информацикй о вашем преподавателе(Иванов, ИКС, Доцент, 5000)
Помогите..вообще не шарю
novakvdele вне форума Ответить с цитированием
Старый 06.02.2014, 03:19   #2
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 15,551
По умолчанию

Вообще - это как?
Arigato вне форума Ответить с цитированием
Старый 06.02.2014, 07:11   #3
Bugrimov
C/C++, Java
Участник клуба
 
Аватар для Bugrimov
 
Регистрация: 28.03.2012
Сообщений: 1,679
По умолчанию

Я так думаю что-то такое для начала

Код:
#define SIZE 10

struct teacher {
	char surname[16];	// Фамилия
	char chair[25];	// Кафедра
	char post[25];	// Должность
	long int salary;	// Зарплата
};

int main() {
	struct teacher t[SIZE];

	...
	...
	
	return 0;
}
Если необходимо динамически выделять память, то функции malloc(), free()

Код:
t = (struct teacher)malloc(sizeof(struct teacher) * SIZE);

// освобождение памяти
free(t);
"Keep it simple" - придерживайтесь простоты!
Уильям Оккам - "Не следует множить сущее без необходимости"
Сложность - враг простоты и удобства!

Последний раз редактировалось Bugrimov; 06.02.2014 в 07:15.
Bugrimov вне форума Ответить с цитированием
Старый 06.02.2014, 09:18   #4
novakvdele
Новичок
Джуниор
 
Регистрация: 06.02.2014
Сообщений: 6
По умолчанию

Цитата:
Сообщение от Bugrimov Посмотреть сообщение
Я так думаю что-то такое для начала

Код:
#define SIZE 10

struct teacher {
	char surname[16];	// Фамилия
	char chair[25];	// Кафедра
	char post[25];	// Должность
	long int salary;	// Зарплата
};

int main() {
	struct teacher t[SIZE];

	...
	...
	
	return 0;
}
Если необходимо динамически выделять память, то функции malloc(), free()

Код:
t = (struct teacher)malloc(sizeof(struct teacher) * SIZE);

// освобождение памяти
free(t);
вот я именно не понимаю как заполнить массив переменными типа char=(
novakvdele вне форума Ответить с цитированием
Старый 06.02.2014, 09:24   #5
novakvdele
Новичок
Джуниор
 
Регистрация: 06.02.2014
Сообщений: 6
По умолчанию

Цитата:
Сообщение от Arigato Посмотреть сообщение
Вообще - это как?
Ну вообщем это два задания
1. Разместить в динамической памяти две переменные типа структура, содержащую информацию о преподе:Фамилия, Кафедра, Должность, Зарплата.. Родну переменную заполнить такой информацией: Иванов, ИКС, Доцент, 5000
Затем скопируйте значение заполненной 1 переменной во вторую и только поменяйте фамилию на петров.
Это задачу я решила
Код:
#include <string.h>
#include <iostream>
using namespace std;
struct prepod
{
char Fam[30];
char kaf[30];
char zvan[30];
int zarp;
} ;
int main()
{
prepod *p1,*p2;
p1=new prepod;
p2=new prepod;
strcpy(p1->Fam,"Иванов");
strcpy(p1->kaf,"ИКС");
strcpy(p1->zvan,"Доцент");
p1->zarp = 5000;
(*p2)=(*p1);
strcpy(p2->Fam,"Петров");
cout«p1->Fam«endl;
cout«p1->kaf«endl;
cout«p1->zvan«endl;

cout«p2->Fam«endl;
cout«p2->kaf«endl;
cout«p2->zvan«endl;
delete p1;delete p2;
}

А вот вторую не могу
2.Разместить в динамической памяти массив из 10 структур, содержащий такую же информацию что и в первой задаче. И заполнить третий элемент массива информацикй о вашем преподавателе
=(

Последний раз редактировалось Stilet; 06.02.2014 в 18:04.
novakvdele вне форума Ответить с цитированием
Старый 06.02.2014, 12:38   #6
Helloween
Форумчанин
 
Регистрация: 24.04.2012
Сообщений: 300
По умолчанию

Код:
#include "stdio.h"
#include "string"

typedef struct
{
    char family[160];
    char chair[160];
    char post[160];
    unsigned long salary;
} teacher;

int main()
{ 
  teacher* t_list = (teacher*)malloc(10*sizeof(teacher));
  memset(t_list,0,sizeof(teacher)*10);
  strcpy(t_list[3].family,"Ivanov");
  strcpy(t_list[3].chair,"EEF");
  strcpy(t_list[3].post,"docent");
  t_list[3].salary = 25000;
  printf("My teacher :\n%s\n%s\n%s\n%d\n",t_list[3].family,t_list[3].chair,t_list[3].post,t_list[3].salary);
  free(t_list);
  return 0;
}
Помог? Оставляем отзыв =)
Helloween вне форума Ответить с цитированием
Старый 06.02.2014, 17:32   #7
novakvdele
Новичок
Джуниор
 
Регистрация: 06.02.2014
Сообщений: 6
По умолчанию

Цитата:
Сообщение от Helloween Посмотреть сообщение
Код:
#include "stdio.h"
#include "string"

typedef struct
{
    char family[160];
    char chair[160];
    char post[160];
    unsigned long salary;
} teacher;

int main()
{ 
  teacher* t_list = (teacher*)malloc(10*sizeof(teacher));
  memset(t_list,0,sizeof(teacher)*10);
  strcpy(t_list[3].family,"Ivanov");
  strcpy(t_list[3].chair,"EEF");
  strcpy(t_list[3].post,"docent");
  t_list[3].salary = 25000;
  printf("My teacher :\n%s\n%s\n%s\n%d\n",t_list[3].family,t_list[3].chair,t_list[3].post,t_list[3].salary);
  free(t_list);
  return 0;
}
спасибо большое, помогло=)
novakvdele вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Язык C : динамический массив структур Ixituni Помощь студентам 1 12.08.2013 08:36
Динамический массив структур в Си yakuleb Общие вопросы C/C++ 10 12.06.2011 15:19
Динамический массив структур RaZveDchiK Помощь студентам 1 31.08.2008 21:44
Динамический массив структур Kostyakovich Помощь студентам 4 20.04.2008 21:59