С Новым годом! Форум программистов, компьютерный форум, киберфорум
C для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.55/11: Рейтинг темы: голосов - 11, средняя оценка - 4.55
0 / 0 / 1
Регистрация: 14.03.2015
Сообщений: 5
1

Сформировать односвязный списком с типом информационного поля char*

14.03.2015, 20:36. Показов 1941. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Нужно сформировать односвязный списком с типом информационного поля char*
С типом int программа работает нормально, с типом char* компилирует, но работает не правильно. Насколько я понимаю, это связано с объемом памяти, отводимой под символы. Помогите отредактировать программу, пожалуйста.
P.S. Программировать начал недавно, так что уровень программы низкий, не обессудьте
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
#include <stdio.h>
#include <conio.h>
 
struct list
{char* data;
list *next;
};
 
list *make_list(int );
void print_list(list *);
 
int main (){
    int m;
    list* adr;
    printf ("number of elements = ");
    scanf ("%d",&m);
    adr=make_list(m);
    print_list(adr);
}
 
 
list *make_list(int n)
{list *first,*tec,*nel,*tel;
int i;
first=new list;
printf ("Enter the element = ");//vvodim znachenie pervogo elementa
scanf ("%c",&first->data);
first->next=NULL;//obnulyaem adresnoe pole
tec=first;//stavim ukazatel tec
for (i=0;i<n-1;i++)
{
    nel=new list;//pamyat' pod novyi element
    printf ("\nEnter the element = ");//sozdaem new element 
    scanf ("%c",&nel->data);
    nel->next=NULL;
    tec->next=nel;
    tec=nel;
    }
return first;
}
 
void print_list(list *first)
{list *tec=first;
while (tec!=NULL){
    printf ("%c ",tec->data);
    tec=tec->next;
    }
}
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
14.03.2015, 20:36
Ответы с готовыми решениями:

Сформировать двунаправленный список, тип информационного поля char*
Всем привет, кто сможет помочь с заданием? 1. Сформировать двунаправленный список, тип...

Односвязный список. Баг работы программы с типом char
Хотел для лабы сделать односвязный список который будет хранить элементы типа char,но столкнулся с...

Нужно создать двунаправленный список. Тип информационного поля char
Нужно добавить в список элементы с номерами 1,3,5... ______________ Даже не могу представить...

Не работает код бинарного дерева для информационного поля char
Не работает код бинарного дерева для информационного поля char. Не могу понять в чем ошибка....

2
Неэпический
18112 / 10699 / 2062
Регистрация: 27.09.2012
Сообщений: 26,945
Записей в блоге: 1
14.03.2015, 20:40 2
C++
1
2
3
char* data;//Это указатель
//...
scanf ("%c",&nel->data);//А вы в него символ пихаете
Добавлено через 15 секунд
C++
1
2
3
char* data;//Это указатель
//...
scanf ("%c",&nel->data);//А вы в него символ пихаете
0
0 / 0 / 1
Регистрация: 14.03.2015
Сообщений: 5
15.03.2015, 14:52  [ТС] 3
он у меня при выводе на экран два раза выводит
Enter the element=
Enter the element=_
Т.е. если я хочу ввести допустим 5 элементов, то получается ввести только 2

Добавлено через 17 часов 55 минут
В итоге создал такой код, все работает
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <time.h>
 
struct list
{char data;
list *next;
};
 
list *make_list(int,char* );
void print_list(list *);
list* add_point(int,int,list*,char*);
 
int main (){
    int m,f;
    char alph[27]="abcdifghigklmnopqrstuvwxyz";
    list* adr;
    printf ("number of elements = ");
    scanf ("%d",&m);
    adr=make_list(m,alph);
    print_list(adr);
    printf ("\nNumber of additon = ");
    scanf ("%d",&f);
    add_point(m,f,adr,alph);
    print_list(adr);
    getch();
    return 0;   
}
 
 
list *make_list(int n,char*mas)
{list *first,*tec,*nel;
int i;
srand(time(NULL));
first=new list;
first->data=mas[rand()%26];
first->next=NULL;
tec=first;
for (i=0;i<n-1;i++)
{   
    nel=new list;
    nel->data=mas[rand()%26];
    nel->next=NULL;
    tec->next=nel;
    tec=nel;
    }
return first;
}
 
void print_list(list *first)
{list *tec=first;
printf ("\nThe full list: ");
while (tec!=NULL){
    printf ("%c ",tec->data);
    tec=tec->next;
    }
}
 
list* add_point(int n,int k,list* first,char*mas)
{
    int i;
    list *tec,*newel;
    srand(time(NULL));
    tec=first;
    newel=new list;
    newel->data=mas[rand()%26];
    if (k==0){
        newel->next=first;
        first=newel;
        return first;
        }
    for (i=0;i<k-1&&tec!=0;i++)
        tec=tec->next;
        if(tec!=0){
            newel->next=tec->next;
            tec->next=newel;
        } 
        else {
            printf ("\nError, number k is wrong");
        }
    return first;   
}
0
15.03.2015, 14:52
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
15.03.2015, 14:52
Помогаю со студенческими работами здесь

Сформировать двунаправленный список, тип информационного поля int
Нужна небольшая помощь, нужно удалить из списка все элементы с четными номерами, а у меня удаляется...

Сформировать идеально сбалансированное бинарное дерево, тип информационного поля - double
Привет, кто сможет помочь? 1. Сформировать идеально сбалансированное бинарное дерево, тип...

Сформировать стек по файлу чисел. Удалить из стека узлы с минимальным значением информационного поля
Сформировать стек по файлу чисел. Удалить из стека узлы с минимальным значением информационного...

Сортировка по значению поля со списком..как сформировать?
начало здесьу меня еше вопрос..есть таблица &quot;имущество&quot;.в ней есть столбец &quot;заключение экспертизы&quot;...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Как написать микросервис на Go/Golang
InfoMaster 14.01.2025
Определение микросервиса, преимущества использования Go/ Golang Микросервис – это архитектурный подход к разработке программного обеспечения, при котором приложение состоит из небольших, независимо. . .
Как написать микросервис с нуля на C#
InfoMaster 14.01.2025
В современном мире разработки программного обеспечения микросервисная архитектура стала стандартом де-факто для создания масштабируемых и гибких приложений. Этот архитектурный подход предполагает. . .
Как создать интернет-магазин на PHP и JavaScript
InfoMaster 14.01.2025
В современном мире электронная коммерция стала неотъемлемой частью бизнеса. Создание собственного интернет-магазина открывает широкие возможности для предпринимателей, позволяя достичь большей. . .
Как написать Тетрис на Ассемблере
InfoMaster 14.01.2025
Тетрис – одна из самых узнаваемых и популярных компьютерных игр, созданная в 1984 году советским программистом Алексеем Пажитновым. За прошедшие десятилетия она завоевала симпатии миллионы людей по. . .
Как создать игру "Танчики" на Unity3d и C#
InfoMaster 14.01.2025
Разработка игр – это увлекательный процесс, сочетающий в себе творчество и технические навыки. В этой статье мы рассмотрим создание классической игры "Танчики" с использованием Unity3D и языка. . .
Организую платный онлайн микро-курс по доработке Android-клиента Telegram
_Ivana 14.01.2025
Официальная версия и распространенные форки не полностью устраивают? Сделай свою кастомную версию клиента! 4 занятия по 2 часа (2 недели пн, ср 19:00-21:00 по Москве). Первое вводное занятие. . .
Как создать приложение для фитнеса для iOS/iPhone на Kotlin
InfoMaster 14.01.2025
Создание собственного фитнес-приложения — это не только захватывающий, но и полезный процесс, ведь оно может стать вашим верным помощником на пути к здоровому и активному образу жизни. В современных. . .
Как создать приложение магазина для iOS/iPhone на Swift
InfoMaster 14.01.2025
Введение в разработку iOS-приложений Разработка приложений для iPhone и других устройств на базе iOS открывает огромные возможности для создания инновационных мобильных решений. В данной статье мы. . .
Это работает. Скорость асинхронной логики велика. Вопрос видимо останется в стабильности. Плата - огонь!
Hrethgir 13.01.2025
По прошлому проекту в Logisim Evolution https:/ / www. cyberforum. ru/ blogs/ 223907/ blog8781. html прилагаю файл архива проекта в Gowin Eda. Восьмибитный счётчик из сумматора+ генератор сигнала. . .
UserScript для подсветки кнопок языков программировани­­­­я в зависимости от текущего раздела
volvo 13.01.2025
В результате работы этого скрипта подсвечиваются нужные кнопки не только в форме быстрого ответа, но и при редактировании сообщения: / / ==UserScript== / / @name CF_DefaultLangSelect / / . . .
Введение в модели и алгоритмы машинного обучения
InfoMaster 12.01.2025
Машинное обучение представляет собой одну из наиболее динамично развивающихся областей искусственного интеллекта, которая фокусируется на разработке алгоритмов и методов, позволяющих компьютерам. . .
Как на Python создать нейросеть для решения задач
InfoMaster 12.01.2025
В контексте стремительного развития современных технологий особое внимание уделяется таким инструментам, как нейросети. Эти структуры, вдохновленные биологическими нейронными сетями, используются для. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru