bir fakültede vize yada final saatlerinin, alttan alan yada üstten ders alanlar için, çakışmasını önleyen bir program yazdım arkadaşlar..
eğitimci olanların yada ödevlerinde işlerine yarayabilecekler için paylaşayım dedim..
hatasız çalışıyor ancak eksik görürseniz söylemeyi lütfen ihmal etmeyin..
programcılıkta kendimi geliştirmeyi düşünüyorum..
hatta şuan olmasa da ileriye yönelik büyük hedeflerim var bunun için eleştrilerinize gerçekten ihtiyacım var..

buyrun kodlar..

// hasan, derslerin sinav saatleri çakismasin..
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
#include<math.h>
/* programda derslik ve gözetmen eksikligi yasanirsa programin gelistirilmesi
icin  ek kütüphaneler ekledik
*/
int main()
{
	 int gel,i,j,k,nerde,old,t,hasan,n,**sakla,*c,*b,*saat,top,x,y;
// degiskenlerimizi atadik.. old=büyük degiskenimiz..
	 printf("Okulumuzda derslik ve gözetmen eksikligi olmadigini farzederek programliyoruz. \nToplamda kac ders var= ");
	 scanf("%d",&n);
	 printf("2 derside alan ögrenci varsa 1 yoksa 0 yazin. birden fazla karakter kullanmayin! \n");
	 printf("\n");
	 sakla=(int**)malloc(n*sizeof(int*));
	 i=0;
	 while(i<n)
	 {
						  sakla[i]=(int*)malloc((i+1)*sizeof(int));
						  i++;
	 }
	  saat=(int*)malloc(n*sizeof(int));
	  b=(int*)malloc(n*sizeof(int));
	  c=(int*)malloc(n*sizeof(int));
			 for(i=1;i<n;i++)
	 {
				  for(j=0;j<i;j++)
				  {
							printf("%d. ile %d. dersi beraber alan ogrenci var mi?: ",(i+1),(j+1));
							scanf("%d",&sakla[i][j]);
				  }
	 }
	*(b+0)=0;
	  for(i=1;i<n;i++)
	 {
							 top=0;
							 for(j=0;j<i;j++)
							 {
									top=top+sakla[i][j];
							 }
							 *(b+i)=top;
	 }
	  for(i=0;i<n;i++)
	 {
							 old=*(b+i);
							 nerde=i;
							 for(j=0;j<n;j++)
							 {
												  if(*(b+j)>old){
														  nerde=j;
														  old=*(b+j);

														  }
							 }
							 *(c+i)=nerde;
							 *(b+nerde)=-1;

	 }
	 k=0;
	 *(saat+*(c+k))=1;
	 k++;
	 hasan=1;
	 while(k<n)
	 {
					 j=0;
					 t=1;
					 while((t<=hasan)&&(j<k))
					 {
												 if(*(saat+*(c+j))==t)
												 {
																	 if(*(c+k)>*(c+j)){
																			x=*(c+k);
																			y=*(c+j);
																		  }
																	 else{
																			x=*(c+j);
																			y=*(c+k);
																			}
																	 if (sakla[x][y]==0)
																	 j++;
																	 else
																	 {
																		  j=0;
																		  t++;
																	 }
												 }
												 else
												 j++;
					 }
					 if(t<=hasan)
					 *(saat+*(c+k))=t;
					 else
					 {
						  hasan++;
						  *(saat+*(c+k))=hasan;
					 }
					 k++;
	 }
	printf("\n");
		 for(j=0; j<n; j++)
		  {
					printf(" %3d. dersin sinav saat: %3d \n",(j+1),*(saat+j) );
		  }
	printf("\n");
	scanf("%d");

}