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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 06.07.2013, 18:02   #1
Даша1046
Пользователь
 
Регистрация: 15.01.2013
Сообщений: 15
По умолчанию Структуры. Программа работает неправильно.

Помогите пожалуйста с программой в C++
Вот задание:
Описать структуру с именем NOTE, содержащую следующие поля:
— фамилия, имя;
— номер телефона;
— день рождения (массив из трех чисел).
Написать программу, выполняющую следующие действия:
• ввод с клавиатуры данных в массив , состоящий из восьми элементов типа NOTE; записи должны быть упорядочены по трем первым цифрам номера телефона;
• вывод на экран информации о человеке, чья фамилия введена с клавиатуры;
• если такого нет, выдать на дисплей соответствующее сообщение.


Возникла проблема с упорядочением номера телефона по трем первым цифрам и массивом из трех чисел в дате рождения.
Вот программа, которая получилась:
#include<iostream>
#include<conio.h>
#include <string>
using namespace std;
void main()
{
const int m=1;
struct NOTE
{
string name;
char fam[20];
int nom;
int data[3];
};
NOTE a[m+1];
NOTE r;
for(int i=0;i<=m;i++)
{
cout<<"Vvedite imya\n";
cin>>a[i].name;
cout<<endl;
cout<<"Vvedite familiyu\n";
cin>>m[a].fam;
cout<<endl;
cout<<"Vvedite nomer\n";
cin>>a[i].nom;
cout<<endl;
cout<<"Vvedite den'\n";
cin>>a[i].data[0];
cout<<endl;
cout<<"Vvedite mecyaz\n";
cin>>a[i].data[1];
cout<<endl;
cout<<"Vvedite god\n";
cin>>a[i].data[2];

}
char q[20];
cout<<"vvedite familiyu\n";
cin>>q;
int c;
int d=0;
for(int i=1;i<=m;i++)
if (a[i-1].nom>a[i].nom)
{
r=a[i-1];
a[i-1]=a[i];
a[i]=r;
i=1;
};
for(int i=0;i<=m;i++)
{
c=strcmp(a[i].fam,q);
if (c==0)
{d+=1;
cout<<"familiya, imya "<<a[i].fam<<"\n";
cout<<"nomer telefona "<<a[i].nom<<"\n";
cout<<"data rozhdeniya "<<a[i].data[0]<<a[i].data[1]<<a[i].data[2]<<"\n";
cout<<"\n";
}
if (d==0)

cout<<"takyh ludei net\n";


getch();

}}

Но она неправильно выполняет действия, помогите пожалуйста исправить.
Даша1046 вне форума Ответить с цитированием
Старый 06.07.2013, 18:35   #2
Smogg
Участник клуба
 
Регистрация: 14.06.2011
Сообщений: 1,138
По умолчанию

Код:
struct NOTE
{
string name;
char fam[20];
int nom;
int data[3];
};
Не стоит мешать string и char* в одной и той же структуре .
В стринге есть метод .data(), если так нужен прямой доступ к данным.
Код:
cout<<"Vvedite imya\n";
cin>>a[i].name;
cout<<endl;
cout<<"Vvedite familiyu\n";
cin>>m[a].fam; // ошибка тут
cout<<endl;
cout<<"Vvedite nomer\n";
cin>>a[i].nom;
cout<<endl;

Последний раз редактировалось Smogg; 06.07.2013 в 18:37.
Smogg вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
неправильно работает программа CppForYou Общие вопросы C/C++ 0 26.04.2013 01:13
С++. Неправильно работает программа. Новенькая.. Помощь студентам 2 04.10.2012 00:01
Программа работает неправильно. Настюня Помощь студентам 2 16.06.2012 18:34
Программа с интервалами неправильно работает pahanzona Общие вопросы Delphi 2 11.03.2011 16:09
почему на чужем ПК неправильно работает программа Coder01 Общие вопросы Delphi 10 24.08.2010 19:34