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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 03.03.2011, 10:51   #1
akakii
Новичок
Джуниор
 
Регистрация: 03.03.2011
Сообщений: 1
Радость в Си работа со структурами

здравтвуйте)

мне необходимо было написать програму на Си
позволяющую вводить элементы массива структур (размерность массива не более 20 элементов), содержащие сведения о имеющихся в наличии товарах, наименованиях товара, его количество в штуках и цену единицы товара и определяющую суммарную цену всех товаров имеющихся в наличии.

я попросил приятеля и он мне написал, но получилось так что она написана на С++

#include <iostream>
#include <iomanip>

using namespace std;

const int max_goods = 20;
const int max_name_lng = 24;

int usedRecords = 0; //сколько элементов занято

struct TGoods //объявление пользовательского типа TGoods
//далее спецификация типа:
{
//элементы структуры:
char name[ max_name_lng ];
int amount;
float price;
}; //конец спецификации и объявления типа

TGoods goods[ max_goods ]; //создание массива объектов типа TGoods

/*
Можно ещё так:
struct TGoods
{
// ...
} goods[ max_goods ];

или просто

struct
{
//...
} goods[ max_goods ];

но так нежелательно.
*/

int main()
{
char buffer[8] = {0};

while( 1 )
{
cout << "Enter name:" << endl;
cin.getline( goods[ usedRecords ].name, max_name_lng ); // goods[ usedRecords ] - обращение к элементу массива структур,
// то есть к конкретной структуре
// .name - обращение к элементу name конкретной структуры
cout << "Enter amount:" << endl;
cin >> goods[ usedRecords ].amount;

cout << "Enter price:" << endl;
cin >> goods[ usedRecords ].price;

usedRecords++;

cin.ignore(); //сбросить поток ввода, чтобы убрать \n в конце

if( usedRecords < max_goods - 1 )
{
cout << "Do you want to enter another goods? [Y/N]" << endl;
cin.getline( buffer, 8 );

if( buffer[0] == 'N' || buffer[0] == 'n' )
break;
}
else
break;
}

cout << "\n--- You have ----------------------------------------" << endl;

float summ = 0.0f;
for( int i = 0; i < usedRecords; i++ )
{
cout << setw( max_name_lng ) << left << goods[i].name
<< right << setw(6) << goods[i].amount <<
<< setw(6) << setprecision(3) << goods[i].price << '$' << endl;

summ += goods[i].price * float( goods[i].amount );
}

cout << "Total price: " << setprecision(10) << summ << endl;

return 0;
}


и выдает ошибку в строчке
<< setw(6) << setprecision(3) << goods[i].price << '$' << endl;

что бы я не делал у меня не получалось устранить ошибку...
кто может подсказать в чем дело и как её устранить?
и еще бы хотелось что бы она была в С а не в С++
akakii вне форума Ответить с цитированием
Старый 03.03.2011, 15:55   #2
Кирилиус
Пользователь
 
Регистрация: 16.09.2009
Сообщений: 11
По умолчанию

А какую ошибку выдает?
Кирилиус вне форума Ответить с цитированием
Старый 03.03.2011, 15:58   #3
Obey-Kun
Линуксоид
Участник клуба
 
Аватар для Obey-Kun
 
Регистрация: 31.07.2009
Сообщений: 1,403
По умолчанию

В Си нет cout. Библиотек <iostream> и <iomanip> там тоже нету.
Я схожу с ума или это глючит реальность?
Jabber ID: obey@obey.su
Obey-Kun вне форума Ответить с цитированием
Старый 04.03.2011, 05:25   #4
Кирилиус
Пользователь
 
Регистрация: 16.09.2009
Сообщений: 11
По умолчанию

А кто мешает написать вместо cout и cin printf и scanf?
Кирилиус вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа со структурами (C++) DragoonSki Помощь студентам 6 03.03.2013 02:00
[C++] Работа со структурами... max382 Помощь студентам 30 05.05.2011 15:56
Работа со структурами tae1980 Microsoft Office Excel 2 26.11.2010 23:27
Работа со структурами (СИ) Александр Елис Помощь студентам 0 03.05.2010 14:45
C++ Работа со структурами Ekatharina Помощь студентам 0 18.01.2010 19:25