|
Главная | Правила | Регистрация | Дневники | Справка | Пользователи | Календарь | Поиск | Сообщения за день | Все разделы прочитаны |
![]() |
|
Опции темы | Опции просмотра |
![]() |
#1 (permalink) |
Member
Регистрация: 29.09.2012
Сообщений: 72
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
![]() Код:
#include <stdio.h> #include <stdlib.h> #define N 10 int main() { int n,i,j,k,w,que_sk=0,q,mas[N][N],que[N],result[N]; int criteria,zero_count=0; printf("Enter n: "); scanf("%d",&n); //сколько врачей for(i=0;i<n;i++) { for(j=0;j<n;j++) { mas[i][j]=0; //обнуляем матрицу перед вводом } que[i]=-1; //матрица врачей, которых еще не прошли. не пройденный врач = -1 } for(i=0;i<n;i++) //ввод критериев для всех врачей { criteria=-1; while(criteria!=0) //вводить можно не более n критериев, ввод заканчивается если ввели n критериев или введен 0 { //вводить критерии по одному printf("Enter %d doc: ",i+1); scanf("%d",&criteria); if(criteria!=0) mas[i][criteria-1]=1; //пишем критерии в матрицу } } for(q=0;q<n;q++) //цикл по всем врачам (n врачей) { que_sk=0; //счетчик врачей, которых можно посетить for(i=0;i<n;i++) //начинаем проход по матрице { while(que[i]!=-1&&i<n) //выбираем строку матрицы для врача, которого еще не посещали i++; zero_count=0; for(j=0;j<n;j++) //считаем количество нулей в строке { if(mas[i][j]==0) zero_count++; } if(zero_count==n) //если в строке все нули, то врача можно посетить { // printf("%d\n",i); result[q]=i+1; //пишем номер врача в матрицу результата que[i]=0; //отмечаем врача как пройденного que_sk++; } } if(que_sk==0) //если в какой-то момент количество врачей, которых можно посетить = 0, то выводим ощибку и завершаем прогу goto err; for(k=0;k<n;k++) // обнуляем колонки матрицы с номерами врачей, которых посетили (чтоб они стали доступны для посещения) { if(que[k]==0) for(w=0;w<n;w++) mas[w][k]=0; } } printf("\nResult: "); for(i=0;i<n;i++) //печатаем результат printf("%d ",result[i]); system("pause"); return 0; err: //печатаем ошибку в случае неудачи printf("Nevozmozhno sozdatj ocheredj"); system("pause"); return 0; } |
![]() |
![]() |
![]() |
|
Helpmaster
Member
Регистрация: 08.03.2016
Сообщений: 0
|
С вашей темой схожи следующие топики, рекомендую обратить внимание Сортировка массива Сортировка на C# Сортировка в Vista Сортировка по алфавиту Задача почтальона для смешанного графа |
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
![]() |
Опции темы | |
Опции просмотра | |
|
|