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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 30.04.2009, 22:33   #1
Dimarik
Форумчанин
 
Аватар для Dimarik
 
Регистрация: 18.04.2009
Сообщений: 688
По умолчанию структуры

Код:
# include <iostream.h>
#include <windows.h>
        char bufRus[256];
        char*Rus(const char*text)
        {
        CharToOem(text, bufRus);
        cout<<bufRus;
        return bufRus;
        }

struct city
{
char nazv[];
char kod[];
float price;
unsigned int k;
float h;
} ;
float cost ( char na,char ko,float pr, unsigned short kol,float ho);//прототим функции
main()
{
unsigned short n;
Rus("Программе известны Москва, Санкт-Петербург, Краснодар, Ростов(4 города).\n\n");;

city Moscow;
city Piter, Krasnodar, Rostov;
        Moscow.nazv[] = "Москва";//ошибка
        Moscow.kod[]="495";//ошибка и т.д. аналогичные ошибки
        Moscow.price=5;
        Piter.nazv[]="Санкт-Петербург";
        Piter.kod[]="862";
        Piter.price=10;
        Krasnodar.nazv[]="Краснодар";
        Krasnodar.kod[]="861";
        Krasnodar.price=2;
        Rostov.nazv[]="Ростов";
        Rostov.kod[]="555";
        Rostov.price=4;
   float cost (city.nazv, city.kod,city.price, city.k,city.h);


}
               float cost ( char na,char ko,float pr, unsigned short kol,float ho)
                {
                Rus("Введите название города и количество минут:\n");
                char[] b;
                for(int i=0,i<5;i++)
                        {
                        if (b[i]==Moscow.nazv[i])
                                {
                                cin>>Moscow.k;
                                Moskow.h=Moscow.price*Moscow.k;
                                return Moscow.h
                                };
                        if (b[i]=Piter.nazv[i])
                                {
                                cin>>Piter.k;
                                Piter.h=Piter.price*Piter.k;
                                return Piter.h
                                };
                        if (b[i]=Krasnodar.nazv[i])
                                {
                                cin>>Krasnodar.k;
                                Krasnodar.h=Krasnodar.price*Krasnodar.k;
                                return Krasnodar.h}    ;
                        if (b[i]=Rostov.h[i])
                                {
                                cin>>Rostov.k;
                                Rostov.h=Rostov.price*Rostov.k;
                                return Rostov.h};
                        }
у меня компиллятор выдаёт ошибку вот в этом месте:
Moscow.nazv[] = "Москва";//ошибка
E2188 Expression syntax

Последний раз редактировалось MaTBeu; 01.05.2009 в 09:38.
Dimarik вне форума Ответить с цитированием
Старый 30.04.2009, 23:37   #2
counter
Участник клуба
 
Регистрация: 18.10.2008
Сообщений: 1,409
По умолчанию

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

Код:
struct city
{
char nazv[20];
char kod[20];
float price;
unsigned int k;
float h;
} ;
counter вне форума Ответить с цитированием
Старый 30.04.2009, 23:44   #3
Dimarik
Форумчанин
 
Аватар для Dimarik
 
Регистрация: 18.04.2009
Сообщений: 688
По умолчанию

я пробовал эту фишку.. не помогло
и ктому же на с++ размер массива может определяться во время выполнения программы - одно из преимуществ с++.))
Dimarik вне форума Ответить с цитированием
Старый 01.05.2009, 00:52   #4
newkobra
Пользователь
 
Регистрация: 29.04.2009
Сообщений: 33
По умолчанию

Можна вопрос вы программу прямо здесь набирали? У меня к примеру компилятор выдал 60 ошибок, причем очень большая часть из них опечатки.
1. В главной програме не так Moscow.nazv[] = "Москва"; а просто так Moscow.nazv = "Москва";
2. float cost (city.nazv, city.kod,city.price, city.k,city.h); Хоть сами поняли что написали? Я к примеру не могу понять что вы хотели сделать этой строчкой.
3. Функция CharToOem тоже что-то не то, что не могу сказать никогда не пользовался.

Ну и как я сказал полно опечаток.
newkobra вне форума Ответить с цитированием
Старый 01.05.2009, 04:02   #5
ISergeyN
Maniac
Форумчанин
 
Аватар для ISergeyN
 
Регистрация: 03.01.2009
Сообщений: 450
По умолчанию

Ув. Dimarik исправте все ошибки кода это раз и пользуйтесь тегом CODE (#)
Стандартные библиотеки разработаны с учетом многолетнего опыта лучших программистов и они не больны "детскими болезнями крутизны в программизме"....
ISergeyN вне форума Ответить с цитированием
Старый 01.05.2009, 14:42   #6
Dimarik
Форумчанин
 
Аватар для Dimarik
 
Регистрация: 18.04.2009
Сообщений: 688
По умолчанию

а что такое тег CODE(#)???
Dimarik вне форума Ответить с цитированием
Старый 01.05.2009, 14:54   #7
assasin
Форумчанин
 
Регистрация: 27.04.2009
Сообщений: 123
По умолчанию

Цитата:
Сообщение от Dimarik Посмотреть сообщение
а что такое тег CODE(#)???
это, чтобы код программы не занимал на форуме столько места... А то, имхо, читать не очень удобно, мотать много (на будущее).... Но ты пока лучше опечатки исправляй и выкладывай более работоспособный код... А то пока советовать совсем нечего
<= P.S. если я тебе помог нажми весы слева <=
assasin вне форума Ответить с цитированием
Старый 01.05.2009, 15:03   #8
Dimarik
Форумчанин
 
Аватар для Dimarik
 
Регистрация: 18.04.2009
Сообщений: 688
По умолчанию

малость подредактировал, но с остальными ошибками особых проблем нет, я их исправлю, меня интересует как раз это место
Moscow.nazv = "Москва"
даже после того, как я убрал квадратные скобки, у меня компиллятор всё равно выдаёт ошибку. вот подредатктированный текст программы:
Код:
# include <iostream.h>
#include <windows.h>
        char bufRus[256];
        char*Rus(const char*text)
        {
        CharToOem(text, bufRus);
        cout<<bufRus;
        return bufRus;
        }

struct city
{
char nazv[10];
char kod[5];
float price;
unsigned int k;
float h;
} ;
float cost ( char na,char ko,float pr, unsigned short kol,float ho);//прототим функции
main()
{
unsigned short n;
Rus("Программе известны Москва, Санкт-Петербург, Краснодар, Ростов(4 города).\n\n");;

city Moscow;
city Piter, Krasnodar, Rostov;
        Moscow.nazv = "Москва";//ошибка
        Moscow.kod="495";//ошибка и т.д. аналогичные ошибки
        Moscow.price=5;
        Piter.nazv="Санкт-Петербург";
        Piter.kod="862";
        Piter.price=10;
        Krasnodar.nazv="Краснодар";
        Krasnodar.kod="861";
        Krasnodar.price=2;
        Rostov.nazv="Ростов";
        Rostov.kod="555";
        Rostov.price=4;



}
               float cost ( char na,char ko,float pr, unsigned short kol,float ho)
                {
                Rus("Введите название города и количество минут:\n");
                char b[];
                for(int i=0;i<5;i++)
                        {
                        if (b[i]==Moscow.nazv[i])
                                {
                                cin>>Moscow.k;
                                Moskow.h=Moscow.price*Moscow.k;
                                return Moscow.h
                                };
                        if (b[i]=Piter.nazv[i])
                                {
                                cin>>Piter.k;
                                Piter.h=Piter.price*Piter.k;
                                return Piter.h
                                };
                        if (b[i]=Krasnodar.nazv[i])
                                {
                                cin>>Krasnodar.k;
                                Krasnodar.h=Krasnodar.price*Krasnodar.k;
                                return Krasnodar.h}    ;
                        if (b[i]=Rostov.h[i])
                                {
                                cin>>Rostov.k;
                                Rostov.h=Rostov.price*Rostov.k;
                                return Rostov.h};
                        }

Последний раз редактировалось MaTBeu; 01.05.2009 в 17:56.
Dimarik вне форума Ответить с цитированием
Старый 01.05.2009, 15:25   #9
ISergeyN
Maniac
Форумчанин
 
Аватар для ISergeyN
 
Регистрация: 03.01.2009
Сообщений: 450
По умолчанию

Строки нужно копировать при помощи ф-ции strcpy(..)
Код:
#include <iostream>
//#include <algorithm>
//#include <vector>
#include <windows.h>
using namespace std;

char bufRus[256];
char* Rus(const char *text)
{
	CharToOem(text, bufRus);
	cout<<bufRus;
	return bufRus;
}
struct city
{
	char nazv[25];
	char kod[10];
	float price;
	unsigned int k;
	float h;
} ;

//эту функцию переделать ->
//float cost ( char na,char ko,float pr, unsigned short kol,float ho);//прототим функции

main()
{
	unsigned short n;
	Rus("Программе известны Москва, Санкт-Петербург, Краснодар, Ростов(4 города).\n\n");;

	city Moscow;
	city Piter, Krasnodar, Rostov;
	strcpy(Moscow.nazv,"Москва");
	strcpy(Moscow.kod,"495");
	Moscow.price=5;
	strcpy(Piter.nazv,"Санкт-Петербург");
	strcpy(Piter.kod,"862");
	Piter.price=10;
	strcpy(Krasnodar.nazv,"Краснодар");
	strcpy(Krasnodar.kod,"861");
	Krasnodar.price=2;
	strcpy(Rostov.nazv,"Ростов");
	strcpy(Rostov.kod,"555");
	Rostov.price=4;

	return 0;
}
Стандартные библиотеки разработаны с учетом многолетнего опыта лучших программистов и они не больны "детскими болезнями крутизны в программизме"....
ISergeyN вне форума Ответить с цитированием
Старый 03.05.2009, 14:30   #10
Dimarik
Форумчанин
 
Аватар для Dimarik
 
Регистрация: 18.04.2009
Сообщений: 688
По умолчанию

я малость передеоао эту программку, но одна ошибка возникла. Компиллятор не опознаёт глобальные переменные Moscow.nazv, Piter.nazv и т.д. в тексте подпрограммы.
Вот код:
Код:
# include <iostream.h>
#include <string>
#include <windows.h>
        char bufRus[256];
        char*Rus(const char*text)
        {
        CharToOem(text, bufRus);
        cout<<bufRus;
        return bufRus;
        }

struct city
{
string nazv;
string kod;
float price;
unsigned int k;
float h;
} ;
float cost ( );//прототим функции
main()
{
unsigned short n;
Rus("Программе известны Москва, Санкт-Петербург, Краснодар, Ростов(4 города).\n\n");;

city Moscow;
city Piter, Krasnodar, Rostov;
        Moscow.nazv = "Москва";
        Moscow.kod="495";
        Moscow.price=5;
        Piter.nazv="Санкт-Петербург";
        Piter.kod="862";
        Piter.price=10;
        Krasnodar.nazv="Краснодар";
        Krasnodar.kod="861";
        Krasnodar.price=2;
        Rostov.nazv="Ростов";
        Rostov.kod="555";
        Rostov.price=4;
   float cost ();


}
               float cost ( )
                {
                Rus("Введите название города и количество минут:\n");
                string b;

                        if (b==Moscow.nazv)
                                {
                                cin>>Moscow.k;
                                Moscow.h=Moscow.price*Moscow.k;
                                return Moscow.h ;
                                };
                        if (b==Piter.nazv)
                                {
                                cin>>Piter.k;
                                Piter.h=Piter.price*Piter.k;
                                return Piter.h  ;
                                };
                        if (b==Krasnodar.nazv)
                                {
                                cin>>Krasnodar.k;
                                Krasnodar.h=Krasnodar.price*Krasnodar.k;
                                return Krasnodar.h;}    ;
                        if (b==Rostov.h)
                                {
                                cin>>Rostov.k;
                                Rostov.h=Rostov.price*Rostov.k;
                                return Rostov.h;};
                        }
Dimarik вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Структуры в C++ Wia Помощь студентам 7 18.04.2009 15:51
Структуры в СИ ManInBlack Помощь студентам 3 04.04.2009 19:08
Структуры Centyrion Общие вопросы C/C++ 4 06.05.2008 20:33
Структуры в С++ bloo[d] Помощь студентам 1 30.01.2008 22:27