Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
hacker13a
5 / 5 / 0
Регистрация: 17.04.2012
Сообщений: 263
#1

Ошибка в программе (Описать структуру с именем NOTE)

17.04.2013, 20:16. Просмотров 686. Ответов 16

Описать структуру с именем NOTE, содержащую следующие поля:
- фамилия, имя;
- номер телефона;
- дата рождения
Написать программу, выполняющую следующие действия:
- вывод на экран информации о человеке, номер телефона которого введен с клавиатуры;
- если такого нет, выдать на дисплей соответствующее сообщение.

Добавлено через 55 секунд
а вот и сама программа
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
#include <iostream.h>
#include <conio.h>
#include <string.h>
int main() {
    int i;
   char F;
   struct Note {
   char sname_imya [20];
   int nomer [20];
   int data ;
};
    Note A[3];
   for (i=1; i<=3; i++)
   {
   printf("imya"); scanf("%s", & A[i].sname_imya);
   printf("nomer"); scanf("%d", A[i].nomer);
   printf("data"); scanf("%d", & A[i].data);
   }
   printf ("vvedite imya");
   scanf ("%s", &F);
   for (i=1; i<=3; i++)
   {
    if (F == A[i].sname_imya){
      printf ("\n%nomer", A[i].nomer);
      printf ("\n%d", & A[i].data);
      }
   }
   getch();
   return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.04.2013, 20:16
Ответы с готовыми решениями:

Описать структуру с именем NOTE
Описать структуру с именем NOTE, содержанию следующие поля: 1) фамилия, имя;...

Описать структуру с именем Note
Описать структуру с именем Note, содержащую следующие поля: name-фамилия и имя,...

Описать структуру с именем NOTE
2.вывод на экран записей, которые должны быть упорядочены по алфавиту; Не могу...

Описать структуру с именем NOTE
Народ почти не знаю С++ но нужно написать вот прогу желательно на Буилдере ...

Описать структуру с именем NOTE
#include &lt;cstdlib&gt; #include &lt;iostream&gt; #include &lt;cstring&gt; #define N 15...

16
hofmn
Helter Skelter
61 / 61 / 19
Регистрация: 19.09.2012
Сообщений: 133
17.04.2013, 20:22 #2
Где ошибка-то?
0
alex_04
2 / 2 / 0
Регистрация: 27.01.2013
Сообщений: 5
17.04.2013, 20:23 #3
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
#include <conio.h>
#include <stdio.h>
 
int main() {
    int i;
   char F[20];
   struct Note {
   char sname_imya [20];
   int nomer [20];
   int data ;
};
    Note A[3];
   for (i=1; i<=3; i++)
   {
   printf("imya"); scanf("%c", & A[i].sname_imya);
   printf("nomer"); scanf("%d", A[i].nomer);
   printf("data"); scanf("%d", & A[i].data);
   }
   printf ("vvedite imya");
   scanf ("%c", &F);
   for (i=1; i<=3; i++)
   {
    if (F == A[i].sname_imya){
      printf ("\n%nomer", A[i].nomer);
      printf ("\n%d", & A[i].data);
      }
   }
   getch();
   return 0;
}
1
hacker13a
5 / 5 / 0
Регистрация: 17.04.2012
Сообщений: 263
17.04.2013, 20:36  [ТС] #4
Алекс, вот что выдает в ответ
0
Миниатюры
Ошибка в программе (Описать структуру с именем NOTE)  
alex_04
2 / 2 / 0
Регистрация: 27.01.2013
Сообщений: 5
17.04.2013, 20:51 #5
"%c"поменяй на "%s"

Добавлено через 6 минут
и for (i=1; i<=3; i++) на for (i=0; i<3; i++) в обоих циклах
0
ValeryS
Модератор
7215 / 5478 / 682
Регистрация: 14.02.2011
Сообщений: 18,530
17.04.2013, 20:54 #6
Цитата Сообщение от hacker13a Посмотреть сообщение
int nomer [20];
массив !!!!
Цитата Сообщение от hacker13a Посмотреть сообщение
printf("nomer"); scanf("%d", A[i].nomer);
вводим одно число в nomer[0]
Цитата Сообщение от hacker13a Посмотреть сообщение
char F;
один char

Цитата Сообщение от hacker13a Посмотреть сообщение
scanf ("%s", &F);
вводим строку
как минимум 2 char

Цитата Сообщение от hacker13a Посмотреть сообщение
if (F == A[i].sname_imya)
если думаешь что этим сравниваешь строки, то глубоко ошибаешься
для сравнения строк strcmp
http://lord-n.narod.ru/download/book.../14/strcmp.htm
Цитата Сообщение от hacker13a Посмотреть сообщение
printf ("\n%nomer", A[i].nomer);
nomer массив !!!
1
hacker13a
5 / 5 / 0
Регистрация: 17.04.2012
Сообщений: 263
17.04.2013, 20:58  [ТС] #7
alex_04, после того как вводишь имя, он выдает цифры 124558 и т.д..))
0
ValeryS
Модератор
7215 / 5478 / 682
Регистрация: 14.02.2011
Сообщений: 18,530
17.04.2013, 21:02 #8
Цитата Сообщение от hacker13a Посмотреть сообщение
alex_04, после того как вводишь имя, он выдает цифры
потому что портишь стек

Цитата Сообщение от hacker13a Посмотреть сообщение
char F;
Цитата Сообщение от hacker13a Посмотреть сообщение
scanf ("%s", &F);
1
hacker13a
5 / 5 / 0
Регистрация: 17.04.2012
Сообщений: 263
17.04.2013, 21:04  [ТС] #9
ValeryS,
можете написать исправленную версию, ибо я в пока том сильно слаб... как видите))
0
ValeryS
Модератор
7215 / 5478 / 682
Регистрация: 14.02.2011
Сообщений: 18,530
17.04.2013, 21:09 #10
Цитата Сообщение от hacker13a Посмотреть сообщение
можете написать исправленную версию,
нет
Цитата Сообщение от hacker13a Посмотреть сообщение
ибо я в пока том сильно слаб...
учись
помочь всегда помогу
для начала объяви F массивом
char F [20];
во вторых вынеси описание структуры из функции (не хорошо это)
в третьих решай нужную задачу

Цитата Сообщение от hacker13a Посмотреть сообщение
вывод на экран информации о человеке, номер телефона которого введен с клавиатуры;
а ты что вводишь?
Цитата Сообщение от hacker13a Посмотреть сообщение
printf ("vvedite imya");
* *scanf ("%s", &F);
имя
1
hacker13a
5 / 5 / 0
Регистрация: 17.04.2012
Сообщений: 263
17.04.2013, 21:27  [ТС] #11
ValeryS, printf ("vvedite nomer"); вот здесь, и if (F == A[i].nomer){
printf ("\n%name", & A[i].sname_imya); здесь кажись я правильно исправил. и char F[20];
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
#include <conio.h>
#include <stdio.h>
 
int main() {
    int i;
   char F[20];
   struct Note {
   char sname_imya [20];
   int nomer [20];
   int data ;
};
    Note A[3];
   for (i=1; i<=3; i++)
   {
   printf("imya"); scanf("%c", & A[i].sname_imya);
   printf("nomer"); scanf("%d", A[i].nomer);
   printf("data"); scanf("%d", & A[i].data);
   }
   printf ("vvedite nomer");
   scanf ("%s", &F);
   for (i=1; i<=3; i++)
   {
    if (F == A[i].nomer){
      printf ("\n%name", & A[i].sname_imya);
      printf ("\n%d", & A[i].data);
      }
   }
   getch();
   return 0;
}
Добавлено через 2 минуты
а как вынести описание структуры из функции я не знаю(. или не понимаю что это означает
0
alex_04
2 / 2 / 0
Регистрация: 27.01.2013
Сообщений: 5
17.04.2013, 21:33 #12
Цитата Сообщение от hacker13a Посмотреть сообщение
for (i=1; i<=3; i++)
выход за пределы массива происходит, необходимо for (i=0; i<3; i++) т.к индексация начинается с 0

Цитата Сообщение от hacker13a Посмотреть сообщение
а как вынести описание структуры из функции я не знаю(. или не понимаю что это означает
вынести структуру из ф-ции main
1
ValeryS
Модератор
7215 / 5478 / 682
Регистрация: 14.02.2011
Сообщений: 18,530
17.04.2013, 21:44 #13
поехали дальше
зачем тебе
Цитата Сообщение от hacker13a Посмотреть сообщение
int nomer [20];
массив на двадцать(телефонные номера 10 значные) интов(каждый может быть до 2 милиардов)
подумай как поменять
и подумай как поменяется логика программы
Цитата Сообщение от hacker13a Посмотреть сообщение
if (F == A[i].nomer){
массивы так не сравнивают
тем более что nomer массив интов а F чаров
1
hacker13a
5 / 5 / 0
Регистрация: 17.04.2012
Сообщений: 263
17.04.2013, 22:02  [ТС] #14
Цитата Сообщение от ValeryS Посмотреть сообщение
массив на двадцать(телефонные номера 10 значные) интов(каждый может быть до 2 милиардов)
подумай как поменять
т.е нужно просто int nomer;?


Цитата Сообщение от ValeryS Посмотреть сообщение
массивы так не сравнивают
хотите сказать что здесь нужно использовать функцию strcmp?
C++
1
 if(strcmp(F, A[i].nomer))
?
0
ValeryS
Модератор
7215 / 5478 / 682
Регистрация: 14.02.2011
Сообщений: 18,530
17.04.2013, 22:08 #15
Цитата Сообщение от hacker13a Посмотреть сообщение
т.е нужно просто int nomer;?
можно int только unsigned(отрицательных номеров не бывает) и long, в простой int десять цифр не влезут
можно строку так же как для имени
Цитата Сообщение от hacker13a Посмотреть сообщение
хотите сказать что здесь нужно использовать функцию strcmp?
уже нет у тебя типы массивов разные
подумай как будешь хранить номер и после этого будем думать как сравнивать
1
hacker13a
5 / 5 / 0
Регистрация: 17.04.2012
Сообщений: 263
18.04.2013, 18:55  [ТС] #16
ValeryS, вот честно, не знаю(. поищу в интернете(.

Добавлено через 20 часов 35 минут
ValeryS, ПОЖАЛУЙСТА, напишите программу, я весь инет перекопал мне просто на аттестацию сдавать) чем быстрее тем лучше, и конечно должен все объяснять что да как получил))
0
ValeryS
Модератор
7215 / 5478 / 682
Регистрация: 14.02.2011
Сообщений: 18,530
18.04.2013, 19:29 #17
Цитата Сообщение от hacker13a Посмотреть сообщение
просто на аттестацию сдавать)
не вижу логики
Цитата Сообщение от hacker13a Посмотреть сообщение
ValeryS, ПОЖАЛУЙСТА, напишите программу,
мне что ли аттестацию сдавать?

Цитата Сообщение от hacker13a Посмотреть сообщение
я весь инет перекопал
А что ты там искал???
это твои данные как решишь так и будет
уже есть два варианта
целое длинное число
строка
можно еще собственную структуру
решай из чего делать будешь
1
18.04.2013, 19:29
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.04.2013, 19:29

Описать структуру с именем NOTE
Пожалуйста помогите написать код программы. Описать структуру с именем...

Описать структуру с именем NOTE
Создать однофайловое консольное приложение (проект). В этом проекте описать...

Описать структуру с именем NOTE
Помогите с программой пожалуйста. А. Описать структуру с именем NOTE,...


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

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

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