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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 17.11.2015, 08:58   #1
Okayguys
Пользователь
 
Регистрация: 22.04.2013
Сообщений: 12
По умолчанию Структуры. C++

Всем доброго времени суток. Имеется задачка , помогите, пожалуйста ее решить.
Даны сведения о школьниках: фамилия, имя, отчество, пол, дата рождения (год, число, месяц), класс.
Написать программу, позволяющую определить, есть ли в школе в каких-либо параллельных классах однофамильцы.
Вот код, который работает не правильно, хотя преподаватель сказал, что все будет ок, но приврал , видимо.
Надеюсь на помощь. Предварительное спасибо за ответ.
Код:
#include <iostream>
#include <locale>
#include <cstdlib>
#include <stdio.h>
#include <conio.h>
#include <string.h>
#define N 100
struct inf
{
    char fam[15];
    char imya[15];
    char otech[15];
    char pol;//m,w
    int klass;
    char bukva;//a,b,c...
};
main()
{
   setlocale(LC_ALL, "rus"); 
    inf uch[N];
    int m,i,j,flag=1;   //m-кол-во учеников,i,j для цикла
printf ("введите кол-во учеников ");
scanf ("%d",&m);
for (i=0;i<m;i++);
{
    printf(" введите данные по ученикам\n",i+1);
    printf (" введите фамилию\n",i+1);
    scanf ("%s",uch[i].fam);//fan это массив(ссылка)
    fflush(stdin);// очищает поток какой-то
   printf (" введите имя\n",i+1);
    scanf("%s",uch[i].imya);
    printf (" введите отчество\n",i+1);
    scanf("%s",& uch[i].otech);
   printf (" введите пол\n",i+1);
    scanf("%i", & uch[i].pol);
    printf (" введите класс\n",i+1);
    scanf("%d",& uch[i].klass);
  printf (" введите букву\n",i+1);
    scanf("%s",& uch[i].bukva);
    fflush(stdin);
    }
for (i=0;i<m;i++);
{
    printf ("\n%s\t",uch[i].fam);
    printf ("%s\t",uch[i].imya);
    printf ("%s\t",uch[i].otech);
    printf ("%s\t",uch[i].pol);
    printf ("%s\t",uch[i].klass);
    printf ("%s\t",uch[i].bukva);
}
for(i=0;i<m-1;i++);
for (j=i+1;j<m;j++);
if (uch[i].klass==uch[j].klass && strcmp(uch[i].fam,uch[j].fam)==0)// сравниваем
{
    flag=0;
    printf ("%s\t",uch[i].fam);// по I и  по j  проверить
}
if(flag) 
printf ("net");
	system ("pause");
	return 0;
}
Okayguys вне форума Ответить с цитированием
Старый 17.11.2015, 09:44   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
for(i=0;i<m-1;i++);
for (j=i+1;j<m;j++);
Убери точки-запятые.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 17.11.2015, 11:11   #3
Okayguys
Пользователь
 
Регистрация: 22.04.2013
Сообщений: 12
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Убери точки-запятые.
Все равно выдает ошибку.
Изображения
Тип файла: jpg 55к.jpg (34.5 Кб, 66 просмотров)
Okayguys вне форума Ответить с цитированием
Старый 17.11.2015, 11:39   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
scanf("%s",& uch[i].bukva);
%c пиши
Цитата:
fflush(stdin);
Убери.
Цитата:
scanf("%i", & uch[i].pol);
А чего тут %i?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 17.11.2015, 13:20   #5
Okayguys
Пользователь
 
Регистрация: 22.04.2013
Сообщений: 12
По умолчанию

Ну в общем бесперспективный код, видимо он является полностью неправильным.
Потому что одну проблему исправляем, а другая появляется, например, сейчас после ввода значений больше ничего не происходит.
Изображения
Тип файла: jpg Безымянный.jpg (38.2 Кб, 66 просмотров)
Okayguys вне форума Ответить с цитированием
Старый 17.11.2015, 13:24   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
бесперспективный код
Отето ты правильно
Переписывай. И начни так:
Код:
struct inf
{
    string fam,imya,otech;
    char pol;//m,w
    int klass;
    char bukva;
};
Ввод через cin>>. Тогда при сравнении можно использовать == и прочие удобства.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Передача структуры из программы на c# в dll на c++ и получение структуры из dll iukash Общие вопросы .NET 0 07.05.2013 16:03
Динамические структуры данных, списковые структуры (надо разобраться что делает программа) _4Alex4_ Помощь студентам 1 14.11.2012 07:39
Написание программ (древовидные структуры, структуры неспециального вида и т.д.) Green Gin Фриланс 2 27.04.2012 15:26
Управляющие структуры. Программирование алгоритмов разветвляющейся структуры. Лёнка Компоненты Delphi 1 23.04.2012 15:03
С++ Структуры Dmitry_Web Помощь студентам 23 03.12.2011 21:53