예제 #1
0
void scalanie(){      
	if(i1<n1 && i2<n2){      
		if (ciag1[i1] < ciag2[i2]) {
			ciag[i] = ciag1[i1]; i1=i1+1;
	  	}      
		else {        
		ciag[i] = ciag2[i2]; i2=i2+1; 
	   	} 
	i=i+1;     
       	scalanie(); 
     	
}
else if(i1<n1){     
       	ciag[i] = ciag1[i1];     
       	i1++;     
       	i++;      
	scalanie();   
}
else if(i2<n2){     
       	ciag[i] = ciag2[i2];   
       	i2++;     
       	i++;     
       	scalanie();   
} 
}
int main(void)
{
    int i,ilosc1,ilosc2;
    int *tab1,*tab2,*tab;
    printf("Podaj ilosc elementow pierwszego zbioru: ");
    scanf("%d",&ilosc1);
    tab1=(int*)malloc(ilosc1*sizeof(int));
    for(i=0;i<ilosc1;i++)
    {
        printf("\tPodaj %d element pierwszego zbioru: ",i+1);
        scanf("%d",&*(tab1+i));
    }    
    sort_proste(tab1,ilosc1);
    printf("Podaj ilosc elementow drugiego zbioru: ");
    scanf("%d",&ilosc2);
    tab2=(int*)malloc(ilosc2*sizeof(int));
    for(i=0;i<ilosc2;i++)
    {
        printf("\tPodaj %d element drugiego zbioru: ",i+1);
        scanf("%d",&*(tab2+i));
    }    
    sort_proste(tab2,ilosc2);
    system("cls");
    printf("Pierwszy zbior:\n");
    for(i=0;i<ilosc1;i++)
        printf("%d\t",*(tab1+i));
    printf("\nDrugi zbior:\n");
    for(i=0;i<ilosc2;i++)
        printf("%d\t",*(tab2+i));
    tab=(int*)malloc((ilosc1+ilosc2)*sizeof(int));
    scalanie(tab1,tab2,tab,ilosc1,ilosc2);
    printf("\nZbior utworzony przez scalenie:\n");    
    for(i=0;i<ilosc1+ilosc2;i++)
        printf("%d\t",*(tab+i));
    printf("\n");
    system("pause");
    free(tab1);
    free(tab2);
    free(tab);
    return 0;
}
예제 #3
0
main() {    
printf("\nDlugosc pierwszego ciagu niemalejacego: "); 
scanf("%i",  &n1);    
printf("wyrazy pierwszego ciagu:\n  ");     

for (i1=0; i1<n1; i1=i1+1)  
scanf("%f", &ciag1[i1]);   
printf("\nDlugosc drugiego ciagu niemalejacego: "); 
scanf("%i", &n2);    
printf("wyrazy drugiego ciagu:\n  ");    

for (i2=0; i2<n2; i2=i2+1) 
       	scanf("%f", &ciag2[i2]);     
n = n1+n2; 
i1=0;
i2=0;
i=0; 
/*  while (i1<n1 && i2<n2) { 
 *  if 
(ciag1[i1] < ciag2[i2]) {    
ciag[i] = ciag1[i1]; i1=i1+1;   
}      
else {   
ciag[i] = ciag2[i2]; 
i2=i2+1;     
}   
i=i+1; 
}    
while (i1<n1)  {
ciag[i] = ciag1[i1];
i1=i1+1; i=i+1;
}   
while (i2<n2)  
{ ciag[i] = ciag2[i2];
i2=i2+1; i=i+1; }  */ 
scalanie();    
printf("\nCiag scalony:\n");    for (i=0; i<n; i=i+1)  printf("  %f", 
ciag[i]);    printf("\n\n");  }