Kasutaja:M2s17/Programmeerimiskeel C kood

Allikas: Vikiõpikud

Spiraal[muuda]

#include <stdio.h>
#include <stdlib.h>
#define loe if(i>=arv){break;}else{a[rida][veerg]=m[i]; i++;}//kokkuhoid
#define d 9      
#define pole_viga 0
#define on_viga 1

//globaalmuutuja
int rand_seed=10;

//prototüübid
void kuva_massiiv(int [][d]);	        
void taida_massiiv(int [][d], int*, int);   
int rand();

//funktsioonid
int main(void){
     //Muutujate deklareerimine
    int rida=d, veerg=d, arv=40, i;
     //Massiivi deklareerimine
    int m[rida*veerg];
     //2-dimensioonilise massiivi deklareerimine
    int a[rida][veerg]; 
//1)    
    //Masiivi väärtustamine                    
    for (i=0; i < arv; i++){
        m[i]=1;
    }

    //Massiivi initsialiseerimine 
    while(rida-->0){while(veerg-->0){a[rida][veerg]=0;}veerg=d;}
    
    taida_massiiv(a,m,arv);
    kuva_massiiv(a);
    
    //Massiivi initsialiseerimine 
    while(rida-->0){while(veerg-->0){a[rida][veerg]=0;}veerg=d;}
//2)
    //Kuva kahe maatriksi vahele rida
    printf("\nNende suvaliste arvudega täidetakse maatriks:");
    //Muudame genereeritavate arvude pikkust
    arv=65;
        
    //Masiivi väärtustamine                    
    for (i=0; i < arv; i++){
        m[i]=rand();
        printf(" %d,",m[i]);
    }
    printf("\n");
    
    taida_massiiv(a,m,arv);
    kuva_massiiv(a);
    
    //windowsi puhul kommenteeri järgmine rida välja
    //getchar(); getchar();  
    return pole_viga;                       //Funktsiooni edukuse tagastamine
}
/* Kirjutanud K&R
   - ragastab suvalise arvu 0 ja 32767 vahel.*/
int rand(){
    rand_seed = rand_seed * 1103515245 +12345;
    return (unsigned int)(rand_seed / 65536) % 10;
}

void taida_massiiv(int a[d][d], int *m, int arv){
    int i = 0;
    int x=0, y=d, rida=0, veerg=0;
    
    while(1>0){
        for(veerg=x;  veerg<y;  veerg++){rida=x;loe}    //Vasakult paremale read
        for(rida=x+1; rida<y;   rida++){veerg=y-1;loe}  //Ülevalt alla veerud
        for(veerg=y-2; veerg!=x; veerg--){rida=y-1;loe} //Paremalt vasakule read
        for(rida=y-1;  rida!=x;  rida--){veerg=x;loe}   //Alt üles veerud
            
        if(i>=arv){break;}else{x++;y--;}                                                   
    }                                                               
}

void kuva_massiiv(int a[d][d]){
    int rida=d, veerg=d;

    while(rida-->0){                               //Massiivi initsialiseerimine
       while(veerg-->0){
          printf("| %d ",a[rida][veerg]);
       }
       
       veerg=d;
       printf("|\n");
    }  
}

Vaheta[muuda]

#include <stdio.h>

/*Prototüüp*/
void vaheta(int*, int*);

/*Programm testimiseks*/
int main(void){
	int a[]={0,0};

	printf("A=");scanf("%d", &a[0]);
	printf("B=");scanf("%d", &a[1]);

    printf("\nEnne\nA=%d\nB=%d", a[0], a[1]);
	vaheta(&a[0],&a[1]);
	printf("\nP2rast\nA=%d\nB=%d", a[0], a[1]);
	
    //windowsi puhul kommenteeri järgmine rida välja
    //getchar(); getchar(); 
    return 0;
}

/*funktsioon*/
void vaheta (int* v1, int* v2){
	int temp;

	temp = *v1;
	*v1 = *v2;
	*v2 = temp;
}