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;
}