Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Dot_mmoru
25 / 25 / 4
Регистрация: 16.10.2012
Сообщений: 166
#1

Вывести на печать телефонные номера, что начинаются на 22, которые имеют наибольший долг - C++

30.11.2012, 20:32. Просмотров 344. Ответов 3
Метки нет (Все метки)

задание:
список абонентов телефонной сети:почтовый номер , ФИО , адрес , номер телефона (ввести по шаблону 00-000-000)
долг по оплате . Вывести на печать телефонные номера , что начинаются на 22 , которые имеют наибольший долг

все сделал , но во в этой строчке
C++
1
if ((s[0].number=='2')&&(s[1].number=='2'))
мне подчеркивает == не могу разобраться почему
помогите пожалуйста !

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
#include<iostream>
#include<math.h>
#include <stdio.h>
#include <conio.h> 
#include<cstdlib>
 
using namespace std;
    
int main ()
{
    const int n=2;
    struct Student 
    {
    int mail ;
    char FIO[40];
    char Adress[50];
    char number[12];
    double dolg;
    }s[n];
    int i;
 
    for (i=0;i<n;i++)
    {
    cout <<"input your mail number  ";
    cin >>s[i].mail;
    cout <<"FIO ";
    cin >>s[i].FIO;
    cout <<"enter home adress   ";
    cin >>s[i].Adress;
    cout <<"enter Number like this (00-000-000) ";
    cin >>s[i].number;
    cout <<"enter debt  ";
    cin >>s[i].dolg;
    cout<<"\n";
    }
 
    double border;
    cout <<"enter border debt   ";
    cin>>border;
    
    cout <<"\n Result \n"<<endl;
 
    if ((s[0].number=='2')&&(s[1].number=='2'))
    {
        for (i=0;i<n;i++)
        {
        if (s[i].dolg>=border)
        {
            cout<<"Mail number  "<<s[i].mail<<endl;
            cout<<"FIO"<<s[i].FIO<<endl;
            cout <<"home adress "<<s[i].Adress<<endl;
            cout<<"Number   "<<s[i].number<<endl;
            cout<<"debt "<<s[i].dolg<<endl;
            cout<<"\n";
        }
    
        }
    }
getch();
return 0;
 
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.11.2012, 20:32
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Вывести на печать телефонные номера, что начинаются на 22, которые имеют наибольший долг (C++):

Телефонные номера, которые набираются на кнопочном телефоне ходом коня - C++
Динамическое программирование Ход конем (Время: 1 сек. Память: 16 Мб) Шахматная ассоциация решила оснастить всех своих сотрудников...

Выделить из текста все слова которые имеют длину 6 символов и начинаются на "С" - C++
Ввести текст состоящий не менее чем из 15 слов. Выделить из текста все слова которые имеют длину 6 символов и начинаются на &quot;С&quot;

Определить попарно номера окружностей, которые имеют хотя бы одну общую точку - C++
Пересекающиеся окружности. Даны натуральные числа x1,y1,r1...,x(n),y(n),r(n), которые задают последовательность окружностей так, что...

Вывести слова из строки, которые имеют длину больше 5 и начинаются с буквы 'А' или 'а' - Turbo Pascal
Привет! Помогите решить задачу со строками по программированию!! 1.ВВЕСТИ строку. На печать выдать слова, которые имеют длину больше 5 и...

Вывести на печать числа, которые начинаются с 500 - Turbo Pascal
Даны трёхзначные числа n=10, вывести на печать числа, которые начинаются с 500.

Найти и вывести номера и среднее арифметическое столбцов, которые начинаются с 2 - Pascal ABC
Помогите пожалуйста решить) 1. Задана матрица Е (N&lt;=20, M&lt;=15). Найти и вывести номера и среднее арифметическое столбцов, которые ...

3
no_wearines
53 / 49 / 2
Регистрация: 01.01.2012
Сообщений: 332
01.12.2012, 04:03 #2
Цитата Сообщение от Dot_mmoru Посмотреть сообщение
if ((s[0].number=='2')&&(s[1].number=='2'))
Вы бирете на сравнение элементы массива типа структура - в ней не перегружены условные операции.
Номер же в number находится.

C++
1
 if((s[0].number[0] == '2') && (s[1].number[1] == '2'))
1
MrGluck
Модератор
Эксперт CЭксперт С++
7492 / 4607 / 693
Регистрация: 29.11.2010
Сообщений: 12,603
01.12.2012, 04:11 #3
Потому что Student.number это массив типо char, а вы сравниваете со значением одной переменной.

C++
1
if ((s[0].number=="2")&&(s[1].number=="2"))
Внимание на кавычки.

Добавлено через 1 минуту
Хотя мб имелась ввиду данная конструкция:
C++
1
if ((s[0].number[0]=='2')&&(s[1].number[0]=='2'))
1
no_wearines
53 / 49 / 2
Регистрация: 01.01.2012
Сообщений: 332
01.12.2012, 04:13 #4
В условном операторе индекс исправьте с s[1] на s[0]
1
01.12.2012, 04:13
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.12.2012, 04:13
Привет! Вот еще темы с ответами:

Вывести на печать слова, которые начинаются и оканчиваются гласной буквой, длиной не менее 7 букв - Turbo Pascal
Вывести на печать слова, которые начинаются и оканчиваются гласной буквой, длиной не менее 7 букв.

Вывести на печать номера тех элементов массива, которые меньше последнего - Matlab
Дан массив C(m), m&lt;=15. Вывести на печать номера тех элементов массива, которые меньше последнего, и их число, а также вывести на печать...

Вывести те слова, которые начинаются на ту же букву, что и последнее слово. - Turbo Pascal
И вот эту еще!! Очень нужна помощь! дана символьная строка, содержащая последовательность слов, разделенных запятыми , за последним словом...

Вывести на экран из файла все слова, которые начинаются на ту же букву, что и последнее слово - C#
Создать файл, состоящий из слов. Вывести на экран все слова, которые начинаются на ту же букву, что и последнее слово. Помогите пожалуйста....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru