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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 10.02.2014, 17:08   #1
GIGABYTE16
Пользователь
 
Регистрация: 30.01.2014
Сообщений: 11
По умолчанию Организовать вывод первых символов.

Составить программу, которая создает очередь из произвольного количества элементов. Информационная часть динамического элемента должна состоять из двух строк.
Не получается - Организовать обработку каждого элемента: печать строк из информационной части и их первых символов.
Вот наработки:
Код:
#include <iostream>
#include <conio.h>
#include <stdio.h>
#include <stdlib.h>
using namespace std;
struct ELEM// Описание структуры    
{   
char simvol[1];
char simvoll[1];
ELEM *next;  
};
void vvod (ELEM *tek)// Ввод полей структуры 
{
setlocale(LC_ALL, "Russian");   
cout<<"\nВведите данные:";
cout<<"\n символ -> \t";
getchar();
gets(tek->simvol);
cout <<"\n символ -> \t";
gets(tek->simvoll);
}
int main()
{
ELEM *nach, *kon, *tek, *old, *new_n;  
char otvet='d';
nach=0;
kon=0;
do
{
new_n=new ELEM;
vvod (new_n);
new_n->next=0;
if (nach)
{
kon->next=new_n;
kon=new_n;
}
else
{
nach=new_n;
kon=new_n;
}
cout <<"\tБудете ещё вводить данные ? (d/n)";
cin >> otvet;
}
while ((otvet=='d')||(otvet=='D'));
cout <<"\n Обработка (вывод на печать) очереди \t";
tek=nach;
while (tek)
{
cout<<"\n Элемент: ";
cout <<"\n символ:  \t" << tek->simvol;
cout <<"\n символы: \t" << tek->simvoll;
old=tek;
tek=tek->next;
delete old;
cout << "\n\t Обработан и удален";
cout<<endl;
}
system("pause");
}
Прошу помощи! Доделать нужно в ближайшие 2 дня! Никак не могу справиться
GIGABYTE16 вне форума Ответить с цитированием
Старый 10.02.2014, 17:32   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
char simvol[1];
char simvoll[1];
А это не строки. Это два массива символов количеством по одному символу, т.е. два символа. Хотя если отвечать на твой вопрос то:
Код:
for(ELEM *i=nach;i;i=i->next) printf(i->simvol[0]);
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 10.02.2014, 17:55   #3
GIGABYTE16
Пользователь
 
Регистрация: 30.01.2014
Сообщений: 11
По умолчанию

Что-то ругается на
Код:
printf(i->simvol[0]);
Пишет вот что [Error] invalid conversion from 'char' to 'const char*' [-fpermissive]
GIGABYTE16 вне форума Ответить с цитированием
Старый 10.02.2014, 18:10   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Код:
printf("%c",i->simvol[0]);
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 10.02.2014, 18:32   #5
GIGABYTE16
Пользователь
 
Регистрация: 30.01.2014
Сообщений: 11
По умолчанию

Теперь совсем плохо. Консоль запускается и сразу закрывается. Может че не так делаю? Я в этом деле новичок, так что вполне могу все запороть
GIGABYTE16 вне форума Ответить с цитированием
Старый 10.02.2014, 19:09   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Отлаживать по шагам значит нужно. Отладкой умеешь пользоваться?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 10.02.2014, 19:12   #7
GIGABYTE16
Пользователь
 
Регистрация: 30.01.2014
Сообщений: 11
По умолчанию

А, все, получилось. Спасиб!
GIGABYTE16 вне форума Ответить с цитированием
Старый 10.02.2014, 19:17   #8
MaTBeu
Eclipse Foundation
Старожил
 
Аватар для MaTBeu
 
Регистрация: 19.09.2007
Сообщений: 2,604
По умолчанию

Зачем создавать массивы из одного элемента, а потом обращаться к нему же? Компилятор вам явно говорит, что у вас char, а вы используете его как char *.
Вместо
Код:
printf("%c",i->simvol[0]);
напишите
Код:
printf("%c",i->simvol);
И еще совет, если по заданию необязательно вводить строку при помощи gets(), то лучше используйте cin >> i->simvol
MaTBeu вне форума Ответить с цитированием
Старый 10.02.2014, 19:20   #9
GIGABYTE16
Пользователь
 
Регистрация: 30.01.2014
Сообщений: 11
По умолчанию

Лучше gets(), нам так говорили. За совет, спасибо. Усвою.
GIGABYTE16 вне форума Ответить с цитированием
Старый 10.02.2014, 19:22   #10
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
нам так говорили.
С моста тоже лучше чем йаду и апстенку
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Организовать обработку каждого элемента: печать строк из информационной части и их первых символов. GIGABYTE16 Общие вопросы C/C++ 6 01.02.2014 13:23
Организовать обработку каждого элемента: печать строк из информационной части и их первых символов. GIGABYTE16 C/C++ Базы данных 0 30.01.2014 15:38
Организовать текстовый файл f, состоящий из N строк. Организовать замену символов в файле. "Старый" символ и "новый" символ запра Richik123 Паскаль, Turbo Pascal, PascalABC.NET 0 31.05.2012 17:32
как взять со строки неизвестной длины n первых символов? :) peq Microsoft Office Excel 2 07.01.2010 22:40
Перемещение первых 2-х символов в MS Excel spike99 Microsoft Office Excel 4 24.06.2008 16:43