Bazı örnek kodlar paylaşacağım bunları iyice inceleyip yeniden yazmanızı öneririm şimdiye kadar öğrendiğimiz konuların bir tekrarı niteliği taşımaktadır kodlarımız.
/*
Bir sayının asal olup olmadığını bulmak için çeşitli metodlar
vardır. Aşağıda bu metodlardan basit bir tanesi yazılmıştır.
Eğer sayının yarısına kadar kontrol etmek yerine, kareköküne
kadar olan sayıları test ederseniz, yine aynı sonuç çıkacaktır.
Ancak anlaşılma konusunda sorun olmaması için soru bu şekilde
çözülmüştür.
*/
#include<stdio.h>
int main( void )
{
int sayi, i;
//Sayıyı ilk başta asal kabul ediyoruz.
//asal_mi değişkeni 1 ise, sayi asaldir.
int asal_mi = 1;
//Klavyeden, test edilmek üzere bir sayı alınıyor.
printf( “Bir sayı giriniz> ” );
scanf(“%d”,&sayi);
//Girilen sayının, başka sayılara göre sırayla modunu
//alıyoruz. Bir sayının modunu aldığınızda, kalan 0 ise
//bu sayının bölünebildiğine ve dolayısıyla
//asal olmadığına dair bilgi verir. Bu işlemi yapabilmek
//için 2’den başlayarak, sayının yarısına kadar olan
//bütün değerler deneniyor.
for( i = 2; i <= sayi/2; i++ ) {
if( sayi%i == 0 ) {
//Sayı i değişkenine kalansız bölünmektedir.
//Dolayısıyla, sayı asal değildir ve döngüyü
//sürdürmeye gerek yoktur.
asal_mi = 0;
break;
}
}
//Sayının asal olup olmama durumuna göre, çıktı yazdırılıyor.
if( asal_mi == 1 )
printf( “%d sayısı asaldır.\n”, sayi );
else
printf( “%d sayısı asal değildir.\n”, sayi );
return 0;
}
/* ’*’ler kullanarak kenar uzunlugu verilen kareyi cizer */
#include<stdio.h>
int main( void )
{
int kenar;
int i;
int j;
printf(“Karenin kenar uzunlugu: “);
scanf(“%d”, &kenar);
/* Gecerli bir deger mi */
while((kenar < 0) || (kenar > 20)) {
printf(“Lutfen 0 ile 20 arasinda bi deger giriniz.”);
printf(“Karenin kenar uzunlugu”);
scanf(“%d”, &kenar);
}
/* karenin cizilmesi */
for(i = 1; i <= kenar; i++) {
if(kenar == 0)
break;
/* alt ve üst kenarlarin cizimi */
if((i == 1) || (i == kenar)) {
for(j = 1; j <= kenar; j++)
printf(“*”);
printf(“\n”);
continue;
} /* if sonu */
/* sag ve sol kenarlarin cizimi */
for(j = 1; j <= kenar; j++)
if((j == 1) || (j == kenar))
printf(“*”);
else
printf(” “);
printf(“\n”);
} /* for sonu */
return 0;
}
// Verilen iki sayının OBEB’ini bulan fonksiyon
int obeb_bul( int sayi_1, int sayi_2 )
{
int obeb = 1;
int bolen = 2;
while( sayi_1 > 1 || sayi_2 > 1 ) {
// Sayilardan her ikiside, bolen
// degiskenine bolundugu takdirde,
// obeb hesabina katilir.
if( sayi_1 % bolen == 0 &&
sayi_2 % bolen == 0 ) {
obeb *= bolen;
sayi_1 /= bolen;
sayi_2 /= bolen;
}
else if( sayi_1 % bolen == 0 ) {
sayi_1 /= bolen;
}
else if( sayi_2 % bolen == 0 ) {
sayi_2 /= bolen;
}
else {
bolen++;
}
}
return obeb;
}