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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 03.07.2012, 14:55   #1
PointBreak
Пользователь
 
Регистрация: 12.05.2012
Сообщений: 15
По умолчанию Найти фамилии и адреса людей,чей телефон начинается с цифры 3

Здравствуйте! Подскажите как реализовать эту задачу?!
Известны фамилии,адреса и телефоны 25-ти человек,Найти фамилии и адреса людей,чей телефон начинается с цифры 3.
Расмотреть два случая :
а)телефон задан в виде семизначного числа.
б)телефон задан в виде ,аналогичном следующему:268-50-59
Microsoft Visual C++ 2008
Код:
#include <iostream>
#include <string.h>
using namespace std;
struct Man
{
    char F[16];
    char addres[32];
    int inumber;
    char chnumber[10];
};
int main()
{
    Man mn[5] = {{"Sidorov","g. Moskva, d. 20. kv. 30", 3796905, ""},
    {"Sidorov1","g. Moskva, d. 21. kv. 30", 0, "2237689"},
    {"Sidorov2","g. Moskva, d. 22. kv. 30", 0, "326-78-95"},
    {"Sidorov3","g. Moskva, d. 23. kv. 30", 3224565, ""},
    {"Sidorov4","g. Moskva, d. 24. kv. 30", 0, "294-78-90"}};
 
    for(int i = 0; i < 5; i++)
    {
        if((mn[i].inumber==3)&&(strcmp(mn[i].chnumber,"3")==0))
        {
            cout <<mn[i].F<< endl;
        }
    }
    system("pause");
    return 0;
}
не понимаю, как в 21 строчке задать условие,чтобы телефон начинался с цифры 3

Последний раз редактировалось PointBreak; 03.07.2012 в 15:09.
PointBreak вне форума Ответить с цитированием
Старый 03.07.2012, 15:09   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
if((mn[i].inumber==3)&&(strcmp(mn[i].chnumber,"3")==0))
Это что? Что из них является телефоном?
Код:
if(mn[i].chnumber && mn[i].chnumber[0]=='3')
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 03.07.2012, 15:15   #3
PointBreak
Пользователь
 
Регистрация: 12.05.2012
Сообщений: 15
По умолчанию

a) int inumber;
b) char chnumber[10];
а) телефон задан в виде семизначного числа.
б) телефон задан в виде ,аналогичном следующему:268-50-59

Stilet, выдает Sidorov2,а Sidorov и Sidorov3 нет

Последний раз редактировалось PointBreak; 03.07.2012 в 15:20.
PointBreak вне форума Ответить с цитированием
Старый 03.07.2012, 15:23   #4
Maxvalue
Пользователь
 
Аватар для Maxvalue
 
Регистрация: 03.07.2012
Сообщений: 18
По умолчанию

3224565 телефон это число, тебе нужно конвертировать в строку и проверить первый символ.
Maxvalue вне форума Ответить с цитированием
Старый 03.07.2012, 15:40   #5
PointBreak
Пользователь
 
Регистрация: 12.05.2012
Сообщений: 15
По умолчанию

Цитата:
Сообщение от Maxvalue Посмотреть сообщение
3224565 телефон это число, тебе нужно конвертировать в строку
с помощью чего можно конвертировать?
какие-то функции есть?
PointBreak вне форума Ответить с цитированием
Старый 03.07.2012, 16:27   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
а) телефон задан в виде семизначного числа.
б) телефон задан в виде ,аналогичном следующему:268-50-59
Стесняюсь спросить, зачем такая избыточность?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 03.07.2012, 16:39   #7
PointBreak
Пользователь
 
Регистрация: 12.05.2012
Сообщений: 15
По умолчанию

Stilet, дали такую задачу)
PointBreak вне форума Ответить с цитированием
Старый 03.07.2012, 16:49   #8
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Это не значит что телефон нужно хранить в двух разных полях.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 03.07.2012, 16:53   #9
PointBreak
Пользователь
 
Регистрация: 12.05.2012
Сообщений: 15
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Это не значит что телефон нужно хранить в двух разных полях.
разве так не удобнее? как тогда лучше?
PointBreak вне форума Ответить с цитированием
Старый 04.07.2012, 06:55   #10
Maxvalue
Пользователь
 
Аватар для Maxvalue
 
Регистрация: 03.07.2012
Сообщений: 18
По умолчанию

Цитата:
Сообщение от PointBreak Посмотреть сообщение
разве так не удобнее? как тогда лучше?
телефон лучше хранить в текстовом поле. твоя прога примерно должна быть такая
Код:
#include <iostream>
#include <string.h>
using namespace std;
struct Man
{
    char F[16];
    char addres[32];
    char inumber[10];
    char chnumber[10];
};
int main()
{
    Man mn[5] = {{"Sidorov","g. Moskva, d. 20. kv. 30", "3796905", ""},
    {"Sidorov1","g. Moskva, d. 21. kv. 30", "0", "2237689"},
    {"Sidorov2","g. Moskva, d. 22. kv. 30", "0", "326-78-95"},
    {"Sidorov3","g. Moskva, d. 23. kv. 30", "3224565", ""},
    {"Sidorov4","g. Moskva, d. 24. kv. 30", "0", "294-78-90"}};
 
    for(int i = 0; i < 5; i++)
    {
        if((strcmp(mn[i].inumber,"3")==0)||(strcmp(mn[i].chnumber,"3")==0))
        {
            cout <<mn[i].F<< endl;
        }
    }
    system("pause");
    return 0;
}
Maxvalue вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Заданный файл записів : прізвище, адреса, телефон ... Олежик95 Паскаль, Turbo Pascal, PascalABC.NET 3 27.04.2012 19:13
Известны фамилии,адреса и телефоны 25-ти человек,Найти фамилии и адреса людей,чей телефон начинается с цифры 3. Расмотреть два слу salomon93 Паскаль, Turbo Pascal, PascalABC.NET 11 01.12.2011 23:36
Помогите плз в программе надо найти чей номер телю кончается на 10 и посчитать их Бубальгум Помощь студентам 0 05.05.2009 16:12