Kashub's Code Barn - "graf eulerowski"

podświetlone jako qbasic (dodał(a) Aww @ 2014-04-11 16:40:53)

Twoja wyszukiwarka
Podświetl ten kod w:
Ostatnio dodane:
Losowe wpisy:
#include<stdio.h>
#define MAX 99
void eulera(INT c, INT *su, INT *tx){
  INT jest=1, koniec=0, x=2, k, alfa=0;
  WHILE(koniec != 1){
    IF(*(tx+jest*MAX+x) != 0) {
      FOR(k=1; k<=c; k++){
	IF(*(tx+jest*MAX+k) != 0){
	  IF(alfa > *(su+k)){
	  x=alfa; }
	ELSE {
	  x=k;
	  alfa=*(su+k);
	}
   }
	ELSE { x=x;
	  k++; }
      }
    }
  ELSE {
      IF(jest > c){
	koniec=1;
	printf("KONIEC\n");
      }
      ELSE {
      IF(x==c){ 
x=0; jest++;
	koniec=1;
	printf("NIE MA DALSZEGO PRZEJSCIA\n");
}
      ELSE {
x++;
}
    }
    }
    IF(*(tx+jest*MAX+x) != 0){   
      printf(" %d - %d : ok \n", jest, x);
      *(tx+jest*MAX+x) = 0;
      *(tx+x*MAX+jest) = 0;
      *(su+jest) = *(su+jest) - 1;
	   jest=x;
	   x=1;
	   alfa=0;
    }
  }
 }
void zerowanie(INT *TAB, INT *sumaa){
  INT i,y;
  FOR(i=0; i<99; i++){
    *(sumaa+i) = 0;
    FOR(y=0; y<99; y++){
      *(TAB+i*10+y)=0;
      }
  }
}
INT max(INT x, INT *y){
  INT i, maxi;
  maxi= *(y+1);
  FOR(i=2; i<=x; i++){
    IF(*(y+i) > maxi){     /* Wyszukanie najwiekszego stopnia wierzcholka */
      maxi=*(y+i); }       /* Stopien grafu */
    ELSE
      { maxi=maxi;
      }
  }
  RETURN maxi;
}
main(){
INT t[MAX][MAX];
INT suma[MAX];
  INT i, punkty, y, a, s, po;
  INT *TAB;
  INT *sumaa;
  TAB = &t[0][0];
  sumaa = &suma[0];
  zerowanie(TAB, sumaa);
  printf("Ile graf posiada wierzchokow ?\n");
  scanf("%d", &punkty);
  FOR(i=1; i<=punkty; i++){
    printf("0 = EOF || Wierzcholek %d laczy sie z : \n", i);
    FOR(y=1; y<=90; y++){;      
      scanf("%d", &po);
      IF(po==0) { y=92; }
      ELSE {
	t[i][po]=1;
      t[po][i]=1;
      IF(i==po){
	printf("Blad? M[i,j] / i = j = 1 !");
	GOTO exi; }
      }
    }
  }
  printf("\n\nMacierz:\n\n");
  FOR(a=1; a<=punkty; a++){
    printf("|");
    FOR(s=1; s<=punkty; s++){
      suma[a]=suma[a]+t[a][s]; 
      printf("%d ", *(TAB+a*MAX+s));  /* drukuj macierz*/
      IF(s==punkty){ printf("|\n"); }
    }
  }
  printf("\n");
  FOR(i=1; i<=punkty; i++){
    printf("Stopien wierzcholka %d = %d  \n", i, *(sumaa+i)); 
  }
  printf("\nStopien Grafu = %d\n\n", max(punkty, sumaa));
 
  eulera(punkty, sumaa, TAB);
printf("\n\n");
  FOR(a=1; a<=punkty; a++){
    printf("| ");
    FOR(s=1; s<=punkty; s++){
suma[90]=suma[90]+t[a][s];
      printf("%d ", *(TAB+a*MAX+s));  /* drukuj macierz*/
      IF(s==punkty){ printf("|\n"); }
    }
  }
  IF(suma[90] == 0) {
    printf("\nGRAF JEST EULEROWSKI\n");
  }
  ELSE {
  printf("\nGRAF NIE JEST EULEROWSKI\n");
  }
 exi:
getchar();
RETURN 0;
}
| Foteliki samochodowe | | Sklep z oponami | | Opony zimowe | | Skróć link | | Blogi za darmo | | Skracacz linków | | Gnieżdżewo | | Smutne Opisy | | Opisy GG |