Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
5 / 5 / 0
Регистрация: 17.04.2012
Сообщений: 263
1

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

17.04.2013, 20:16. Показов 1050. Ответов 16

Author24 — интернет-сервис помощи студентам
Описать структуру с именем 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
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
17.04.2013, 20:16
Ответы с готовыми решениями:

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

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

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

Описать структуру с именем NOTE
Вот такого рода задание: Программа должна запрашивать все необходимые параметры, отслеживая...

16
Helter Skelter
64 / 64 / 19
Регистрация: 19.09.2012
Сообщений: 133
17.04.2013, 20:22 2
Где ошибка-то?
0
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
5 / 5 / 0
Регистрация: 17.04.2012
Сообщений: 263
17.04.2013, 20:36  [ТС] 4
Алекс, вот что выдает в ответ
Миниатюры
Ошибка в программе (Описать структуру с именем NOTE)  
0
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
Модератор
Эксперт по электронике
8947 / 6713 / 921
Регистрация: 14.02.2011
Сообщений: 23,690
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/downloa... strcmp.htm
Цитата Сообщение от hacker13a Посмотреть сообщение
printf ("\n%nomer", A[i].nomer);
nomer массив !!!
1
5 / 5 / 0
Регистрация: 17.04.2012
Сообщений: 263
17.04.2013, 20:58  [ТС] 7
alex_04, после того как вводишь имя, он выдает цифры 124558 и т.д..))
0
Модератор
Эксперт по электронике
8947 / 6713 / 921
Регистрация: 14.02.2011
Сообщений: 23,690
17.04.2013, 21:02 8
Цитата Сообщение от hacker13a Посмотреть сообщение
alex_04, после того как вводишь имя, он выдает цифры
потому что портишь стек

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

Цитата Сообщение от hacker13a Посмотреть сообщение
вывод на экран информации о человеке, номер телефона которого введен с клавиатуры;
а ты что вводишь?
Цитата Сообщение от hacker13a Посмотреть сообщение
printf ("vvedite imya");
* *scanf ("%s", &F);
имя
1
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
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
Модератор
Эксперт по электронике
8947 / 6713 / 921
Регистрация: 14.02.2011
Сообщений: 23,690
17.04.2013, 21:44 13
поехали дальше
зачем тебе
Цитата Сообщение от hacker13a Посмотреть сообщение
int nomer [20];
массив на двадцать(телефонные номера 10 значные) интов(каждый может быть до 2 милиардов)
подумай как поменять
и подумай как поменяется логика программы
Цитата Сообщение от hacker13a Посмотреть сообщение
if (F == A[i].nomer){
массивы так не сравнивают
тем более что nomer массив интов а F чаров
1
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
Модератор
Эксперт по электронике
8947 / 6713 / 921
Регистрация: 14.02.2011
Сообщений: 23,690
17.04.2013, 22:08 15
Цитата Сообщение от hacker13a Посмотреть сообщение
т.е нужно просто int nomer;?
можно int только unsigned(отрицательных номеров не бывает) и long, в простой int десять цифр не влезут
можно строку так же как для имени
Цитата Сообщение от hacker13a Посмотреть сообщение
хотите сказать что здесь нужно использовать функцию strcmp?
уже нет у тебя типы массивов разные
подумай как будешь хранить номер и после этого будем думать как сравнивать
1
5 / 5 / 0
Регистрация: 17.04.2012
Сообщений: 263
18.04.2013, 18:55  [ТС] 16
ValeryS, вот честно, не знаю(. поищу в интернете(.

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

Цитата Сообщение от hacker13a Посмотреть сообщение
я весь инет перекопал
А что ты там искал???
это твои данные как решишь так и будет
уже есть два варианта
целое длинное число
строка
можно еще собственную структуру
решай из чего делать будешь
1
18.04.2013, 19:29
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.04.2013, 19:29
Помогаю со студенческими работами здесь

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

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

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

Описать структуру с именем NOTE
Описать структуру с именем NOTE, с полями: фамилия, номер телефона, год рождения. Сформировать...


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

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru