Форум программистов, компьютерный форум CyberForum.ru

Непонятная ошибка сегментации - C++

Восстановить пароль Регистрация
 
Rass7et
0 / 0 / 0
Регистрация: 15.10.2013
Сообщений: 3
16.10.2013, 00:32     Непонятная ошибка сегментации #1
  • Задание 1: в таблице хранятся данные о баллах учеников участвовавших в олимпиаде. Распечатать фамилии тех, кто набрал больше 30 баллов.

Реализация:
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
#include  <stdio.h>
#include <iostream.h>
int main()
{
setlocale(LC_ALL, "Russian");    
const int N=3; int i,p;
struct student {char fam[15];   // описание структуры с именем студент с полями:  ФИО студента
               float stip; // счет
               };
student stud[N];  // массив из таких структур чтобы записать данные на  N студентов
for (i=0;i<N;i++)    // ввод данных о студентах
{   p=i+1;  
    printf ("%d-й студент",p);
printf ("\nФамилия:");scanf("%f",stud[i].fam);
printf ("\nБалл на олимпиаде:") ; scanf("%s",stud[i].stip);
}
 
 
{
int maxs=30;
for (i=0;i<N;i++)  
if (stud[i].stip>maxs)
printf("\n %f набрал более 30 баллов.",stud[i].fam);
}
 
}
Крашится при переходе на ввод балла, в отладке показывает ошибку сегментации. Где упущено?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.10.2013, 00:32     Непонятная ошибка сегментации
Посмотрите здесь:

Ошибка сегментации C++
Непонятная ошибка сегментации C++
C++ ошибка сегментации
Ошибка Сегментации C++
C++ Ошибка сегментации.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Max Dark
В поиске работы
 Аватар для Max Dark
1546 / 1399 / 501
Регистрация: 09.10.2013
Сообщений: 3,185
Записей в блоге: 8
Завершенные тесты: 2
16.10.2013, 00:44     Непонятная ошибка сегментации #2
у вас заданы неправильные шаблоны ввода
поменяйте местами %f и %s

%f - ввод float
%s - ввод cstring
Rass7et
0 / 0 / 0
Регистрация: 15.10.2013
Сообщений: 3
16.10.2013, 00:48  [ТС]     Непонятная ошибка сегментации #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
#include  <stdio.h>
#include <iostream.h>
int main()
{
setlocale(LC_ALL, "Russian");    
const int N=3; int i,p;
struct student {char fam[15];   // îïèñГ*Г*ГЁГҐ ñòðóêòóðû Г± èìåГ*ГҐГ¬ ñòóäåГ*ГІ Г± ïîëÿìè:  Г”ÈÎ ñòóäåГ*ГІГ*
               float stip; // Г±Г·ГҐГІ
               };
student stud[N];  // Г¬Г*Г±Г±ГЁГў ГЁГ§ ГІГ*ГЄГЁГµ ñòðóêòóð ÷òîáû Г§Г*ГЇГЁГ±Г*ГІГј Г¤Г*Г*Г*ûå Г*Г*  N ñòóäåГ*òîâ
for (i=0;i<N;i++)    // ââîä Г¤Г*Г*Г*ûõ Г® ñòóäåГ*ГІГ*Гµ
{
    
    p=i+1;  
    printf ("%d-Г© ñòóäåГ*ГІ",p);
printf ("\nГ”Г*ìèëèÿ:");scanf("%s",stud[i].fam);
printf ("\nГЃГ*ëë Г*Г* îëèìïèГ*äå:");scanf("%f",stud[i].stip);
 
}
 
 
{
int maxs=30;
for (i=0;i<N;i++)  
if (stud[i].stip>maxs)
printf("\n %s Г*Г*ГЎГ°Г*Г« áîëåå 30 ГЎГ*ëëîâ.",stud[i].fam);
}
 system("pause");
}
Но ведь все равно не работает...
vua72
410 / 410 / 83
Регистрация: 28.11.2010
Сообщений: 1,158
16.10.2013, 01:08     Непонятная ошибка сегментации #4
поставьте & перед stud[i] в scanf
Max Dark
В поиске работы
 Аватар для Max Dark
1546 / 1399 / 501
Регистрация: 09.10.2013
Сообщений: 3,185
Записей в блоге: 8
Завершенные тесты: 2
16.10.2013, 01:23     Непонятная ошибка сегментации #5
Выставьте предупреждений от компилятора на макс уровень
Замените 17ю строку на
C
1
printf ("\nБалл на олимпиаде:");scanf("%f",&stud[i].stip);
govorov
24 / 24 / 3
Регистрация: 25.09.2013
Сообщений: 76
16.10.2013, 10:28     Непонятная ошибка сегментации #6
или stud + i)

Добавлено через 44 секунды
Цитата Сообщение от vua72 Посмотреть сообщение
поставьте & перед stud[i] в scanf
То же самое)
vua72
410 / 410 / 83
Регистрация: 28.11.2010
Сообщений: 1,158
16.10.2013, 13:33     Непонятная ошибка сегментации #7
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
#include  <stdio.h>
#include <iostream>
struct student {
    char fam[15]; // описание структуры с именем студент с полями:  ФИО студента
    float stip; // счет
};
const int N = 3;
int main() {
    setlocale(LC_ALL, "Russian");
    int i, p;
    student stud[N]; // массив из таких структур чтобы записать данные на  N студентов
    // ввод данных о студентах
    for (i = 0; i < N; i++) {
        p = i + 1;
        printf("%d-й студент", p);
        printf("\nФамилия:");
        scanf("%15s", stud[i].fam);
        printf("\nБалл на олимпиаде:");
        scanf("%f", &stud[i].stip);
    }
    int maxs = 30;
    for (i = 0; i < N; i++)
        if (stud[i].stip > maxs)
            printf("\n %s набрал более 30 баллов.", stud[i].fam);
 
//  system("pause");
    return 0;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.10.2013, 14:41     Непонятная ошибка сегментации
Еще ссылки по теме:

Ошибка сегментации C++
C++ ошибка сегментации
C++ Ошибка сегментации

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

Или воспользуйтесь поиском по форуму:
Kuzia domovenok
 Аватар для Kuzia domovenok
1882 / 1737 / 116
Регистрация: 25.03.2012
Сообщений: 5,907
Записей в блоге: 1
16.10.2013, 14:41     Непонятная ошибка сегментации #8
Цитата Сообщение от Rass7et Посмотреть сообщение
scanf("%s",stud[i].stip);
stip это не строка
C++
1
scanf("%f", &stud[i].stip);
Yandex
Объявления
16.10.2013, 14:41     Непонятная ошибка сегментации
Ответ Создать тему
Опции темы

Текущее время: 12:44. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru