Kullanıcıdan alınan sayıların diziye aktarılması ve dizide aranması (C Programı)

Eğitime destek yazı dizimize devam ediyoruz. İngilizce ve Türkçe forumlarda araştırılan C programını sizler için kodlayarak anlatmaya çalıştık. Siz de desteğinizi belirmek için yorum yazmayı unutmayın 🙂
Kullanıcıdan alınan (1’den 200’e kadar) sayıların sıralanması ve sıralanan elemanların dizi içerisinde tekrar bulunması için gereken C programını yazınız.

English Version
Write a C program: A. which sorts a list of elements, user can enter N number of elements (N can be vary from 1 to 200)

B. which finds the position of a target value in sorted list (which is acquired on A). You have upload answers as an text file (rft, doc, docx). I’ll compile them using DEV-C. Don’t forget to add comments in all lines.

#include "stdio.h"
#include "stdlib.h"
#include <locale.h> // Dil kütüphanesi

int main(){
  	setlocale(LC_ALL,"Turkish"); // Türkçe karakter kullanabiliriz. 

    int dizi[200], gecici;
    
    //printf("Kac adet sayi girilecek(1-200 arasinda olmali): ");
    //scanf("%d", &adet);  //Kaç adet sayı girileceğini kullanıcıdan alıyoruz
    int adet=200;
	int i=0;
    int j=0;
    int k=0;
    int adet1=0;
    for(i=0; i<adet; i++){  // Kullanıcıdan sayıları alıyoruz
        printf("%d)Sayı Giriniz: ", i+1);
        scanf("%d", &k); //girilen sayilari sirasiyla diziye atıyoruz
        
        if(k==0){
        	adet1=i;
        	for(j=i;j<adet;j++){
        		dizi[j]=0;
			}
        	goto sticker;
		}else{
			dizi[i]=k;
		}
    }
    
    
    
    sticker:
    //diziyi ekrana yazdırıyoruz.
    printf("\n");
    printf("Sıralanmamış Haldeki Dizimiz :");
    for(i=0; i<adet1; i++){  // Kullanıcıdan sayıları alıyoruz
        
        printf("%d ", dizi[i]);
        
    }
    printf("\n");
    
    
    for(i=0; i<adet1-1;i++){ 
        for( j=i+1; j<adet1; j++){
            if(dizi[i] > dizi[j]){//i. elemani bir sonraki elemanla karşılaştırıp i. eleman büyükse i+1. elemanla yer değiştiriyoruz
                gecici = dizi[i]; // Dizi[i] yi kaybetmemek için gecicide tutuyoruz
                dizi[i] = dizi[j]; //dizi[i] yi dizi[i] den daha küçük olan dizi[j] kaydediyoruz
                dizi[j] = gecici; // Dizi[j] ye ise dizi[i] değerini kaydediyoruz. Bu değeri gecicide saklamıştık
            }
        }
    }
    printf("Sıralanmış Hali: :");
        for( i=0; i<adet1; i++)
            printf("%d ", dizi[i]);
        
    
    printf("\n");
    
    //kullanıcıdan alınan elemanın dizide olup olmadığını bulmak 
    int bulunacak_sayi=0;
    printf("\nAranacak Elemanı Giriniz :");
    scanf("%d", &bulunacak_sayi);//aranacak elemani aldım 
    //şimdi arıyorum 
    
    int flag=0;
    for(i=0;i<adet1;i++){
    	if(dizi[i]==bulunacak_sayi){
    		printf("%d sayısı %d index değerinde bulundu.",bulunacak_sayi,i);
    		flag=1;//1 ise sayi bulunmuştur.
		}
	}
	
	if(flag==0){//0  ise sayi bulunamaiştir.
		printf("\nSayı dizide bulunamadı\n");
	}
	
    system("pause");
    return 0;
}

Yorum Yazın

E-Posta Adresiniz görüntülenmeyecektir. Zorunlu alanlar *
Yan taraftaki HTML kodları kullanarak yorum yapabilirsiniz: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>