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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 02.04.2017, 17:12   #1
slepi
Пользователь
 
Регистрация: 02.04.2017
Сообщений: 10
По умолчанию помогите с написанием программы на Си

надо ввести n структуру студент, у студентов есть имя, фамилия и оценка, а потом вывести на экран эти данные.
недавно начал учить Си, все вроде норм шло, но вот структуры и динамические массивы... Плаваю в них
slepi вне форума Ответить с цитированием
Старый 02.04.2017, 17:28   #2
ura_111
Участник клуба
 
Регистрация: 14.05.2016
Сообщений: 1,793
По умолчанию

Действительно, на динамические массивы нужен порог проходимости (часов 10 интенсивного изучения). Вроде кажется, что там учить, но нет трудно понять (по себе знаю)...

Ладно, найди в интернете примеры (желательно по-проще) динамического массива. Ну и пример структуры (тоже по-проще).

Будем объединять эти два понятия в одной программе.
ura_111 вне форума Ответить с цитированием
Старый 02.04.2017, 17:42   #3
slepi
Пользователь
 
Регистрация: 02.04.2017
Сообщений: 10
По умолчанию

пока есть вот так:

#include <stdio.h>

#define STUDENT_LNAME_LENGTH 30
#define STUDENT_FNAME_LENGTH 30

typedef struct student
{
char lname[STUDENT_LNAME_LENGTH];
char fname[STUDENT_FNAME_LENGTH];
short grade;
struct student *next;
struct student *tail;
}Student;

typedef struct
{
Student *head;
Student *tail;
}p_Student;
slepi вне форума Ответить с цитированием
Старый 02.04.2017, 17:48   #4
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Это связный список, а не массив.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 02.04.2017, 17:59   #5
ura_111
Участник клуба
 
Регистрация: 14.05.2016
Сообщений: 1,793
По умолчанию

Расскажи о
Код:
struct student *next;
struct student *tail;
потому что это из другой оперы. Из темы "СПИСКИ" (я бы даже сказал, заготовка для двунаправленного списка)...

Я имел ввиду чистую структуру, без вышеуказанного.


p.s.: и это мне тоже не понятно:
Код:
typedef struct
{
Student *head;
Student *tail;
}p_Student;
Так, открой поисковик (любой) и вбей "структура Си".
Просмотри первые 5 тем - 100% будет пример структуры.

Аналогично для динамического массива.

__________________________________

Работы (от силы) на полчаса.
ura_111 вне форума Ответить с цитированием
Старый 02.04.2017, 18:09   #6
ura_111
Участник клуба
 
Регистрация: 14.05.2016
Сообщений: 1,793
По умолчанию

Ищи структуру "безымянную" (без привязки с студенту).

Лучше она должна быть по-проще.
ura_111 вне форума Ответить с цитированием
Старый 02.04.2017, 18:21   #7
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Цитата:
Сообщение от ura_111 Посмотреть сообщение
и это мне тоже не понятно
Цитата:
Сообщение от ura_111 Посмотреть сообщение
открой поисковик (любой) и вбей "структура Си"
А сам чего не вбил?
http://learnc.info/c/structures.html#typedef_struct
http://microsin.net/programming/arm/...ifference.html
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 03.04.2017, 15:03   #8
slepi
Пользователь
 
Регистрация: 02.04.2017
Сообщений: 10
По умолчанию

там каждый студент будет добавляться в конец списка, для того и указатель *tail, а *head - начало списка
slepi вне форума Ответить с цитированием
Старый 03.04.2017, 15:08   #9
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Да, это называется связный список (linked list).

Вы задание точно правильно поняли? Там разве не про массив речь?
malloc(n * sizeof(Student)) и т.п.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 03.04.2017, 20:36   #10
slepi
Пользователь
 
Регистрация: 02.04.2017
Сообщений: 10
По умолчанию

вообщем, перестал страдать списками, написал пока без динамического, но вылетает

Код:
#include <stdio.h>

#define NUMBER_OF_STUDENT 3
#define STUDENT_LNAME_LENGTH 30
#define STUDENT_FNAME_LENGTH 30

typedef struct student
{
	char lname[STUDENT_LNAME_LENGTH];
	char fname[STUDENT_FNAME_LENGTH];
	short grade;
}Student;
void setValue(Student* StudentNote);
void printValue(Student* studentNote);


int main()
{
	Student studentNote[NUMBER_OF_STUDENT];
	setValue(studentNote);
	printValue(studentNote);

	return 0;
}

void setValue(Student* studentNote)
{
	for (int i = 0; i<NUMBER_OF_STUDENT; i++) 
	{
		printf("Enter name: ");
		fgets(studentNote->lname, STUDENT_LNAME_LENGTH, stdin);
		printf("Enter family: ");
		fgets(studentNote->fname, STUDENT_FNAME_LENGTH, stdin);
		printf("Enter grade " );
		scanf("%d", studentNote->grade);
		printf("---\n");
		studentNote++;
	}
}

void printValue(Student* studentNote) 
{
	for (int i = 0; i<NUMBER_OF_STUDENT; i++)
	{
		printf("name: %s /nfamily: %s /nbday: %d\n", studentNote->lname, studentNote->fname, studentNote->grade);
		studentNote++;
	}
}
Цитата:
Сообщение от slepi Посмотреть сообщение
printf("Enter grade " );
scanf("%d", studentNote->grade);

}


}
нашел, & забыл, работает, осталось только массив прикрутить, всем спасибо


______________________
Используйте тег [CODE] (кнопка с решеткой # в форме сообщения) при вставке кода на форум.

Последний раз редактировалось Alex11223; 03.04.2017 в 20:48.
slepi вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите с написанием программы на ассемблере... sertrtrt Помощь студентам 1 21.12.2016 12:13
помогите пожалуйста с написанием программы. VasyaSam Visual C++ 0 14.12.2013 14:05
Помогите с написанием программы на Lazarus hj-81 Фриланс 6 10.12.2013 12:20
Помогите с написанием программы на Lazarus hj-81 Помощь студентам 2 09.12.2013 22:22
Помогите с написанием программы на Pascal Paket4ik Помощь студентам 9 21.07.2009 12:28