C Programlama Örnek Sorular ve Çözümleri

preview_player
Показать описание
döngü örnekleri, asal sayılar, iç içe döngü örnekleri, iki boyutlu matris örnekleri, özyineli örnekler
Рекомендации по теме
Комментарии
Автор

2. soru olan en büyük asal sayıyı bulma işleminde bir hamallıktan daha kurtulmanız için bir tavsiye: asallığını test ettiğiniz sayıya 2'den başlayarak bölme işlemi uygularken j değişkenini test edilen sayının yarısı büyüklüğüne kadar artırmanız kafidir. Örneğin 97 sayısının 48'e kadar bir böleni çıkmadıysa 97'nin asal olduğunu ilan etmeye yeterlidir.

electronicmechanic
Автор

Şadi hocamız gibi Türkiyedeki her üniversitede ve devlet kurumunda birkaç tane ADAM olsa ülkenin kısa bir zaman diliminde bilim anlamında anormal bir ivmeyle kalkınacağının garantisini verebilirim... Allah sizden razı olsun sevgili hocam. İlgi ve alakanız için, yardımlarınız için şahsım adına size minnettarım...

aykutdinc
Автор

hocammm çok iyi geldi bu örnekler. Allah razı olsunnn

premuhendis
Автор

hocam merhaba, iki boyutlu fibonacci örneğini daha önce göstermiş olduğunuz recursive yöntemiyle çözdüm. eğitimleriniz için teşekkür ederim.

int fib(int);

int main() {
printf("kare matrisin kenar uzunlugu girin");
int n;
scanf("%d", &n);
for (int i = 0; i < n; i++) {
for (int j = i; j < n+i; j++) {
printf("%d\t", fib(j));
}
printf("\n");
}
getch();
}

int fib(int k) {
if (k == 0 || k == 1) {
return 1;
}
return fib(k - 1) + fib(k - 2);
}

tayfun
Автор

hocam saniye 10:37 deki kodda 10. satirdaki if(f(n, 2)) statement'i neyi kontrol ediyor?

tunabozkurt
Автор

Asal sayı sorusunda(ilk çözüm için), hangi sayıyı girersem sonuç olarak o sayı karşıma çıkıyor...Nedeni ne olabilir?

sevdenurtosuner
Автор

11:39 daki sorunun farklı tarzda çözümü
#include<stdio.h>
#include<math.h>

int main() {

int sayi, us;
int i, j;
int aralik[10];
printf("Lutfen bir sayi giriniz: \n");
scanf("%d", &sayi);

for(i=1;i<=10;i++){
aralik[i-1]=pow(2, i);

}

}

printf("%d", j);



return 0;
}

mehmetyucelsartas
Автор

hocam 18:55 deki kodun tıpatıp yanısını yazdım defalarca kontrol ettim ama kod yanlış çalışıyor fibonacci serisini sadece yukarıdan aşağı bastırıyor sebebi nedir

lilmonix
Автор

hocam çok iyi anlatmıssınız keske sınavdan önce bulsaydım sizi

batuhankillioglu
Автор

hocam while(yas>=0) döngüsünde -1 girildiğinde toplam ve say değişkenleri üzerindeki işlemler koşul false olmasına rağmen uygulanıyor ama fonkisyonlar çalışmıyor.koşul false döndürdüğünde neden operatör işlemleri yapılmaya devam ediyor tam anlayamadım, bilgi verirseniz sevinirim.teşekkürler

ufukari
Автор

[Error] break statement not within loop or switch.

if içerisinde break komutu kullanabiliyor muyuz?

UtarkOyun
Автор

hocam merhaba 6:2o deki sorusunuzda eger n/ 2 dersek tek sayilar icin sadece 2. satiri "1" yapar ayni zaman da cift sayilar icin de n/2 -1 dedik orda da sadece 2 satiri "1" yapar nacizane cozumum ise



int n = get_int("bir sayi girin");


for (int i =1; i<=n; i++){
for (int j =1; j<=n; j++){
if((i ==(n+1)/2 || j ==(n+1)/2) || (n%2==0 &&(i ==n/2 || i ==(n/2)+1 || j ==n/2 || j == (n/2)+1))){
printf("1");
}
else{
printf("0");
}
}
printf("\n");




}
}

fevneffevnef
Автор

hocam ilk örnekte tek sayılar için yazılması gereken videodaki kodda 5 yazdığımızı farzedersek program 2. sütun yada satıra 1 yazmaz mı? Tek sayının 1 fazlasının 2 ye bölümüyle elde edilen sayı bize doğru satır ve sütunu vermez mi?Yanlış mı düşünüyorum saygılar.

Nitriculus
Автор

1. Soru için while döngüsü çözümü
(şöyle yapsan daha güzel, daha kısa olur dediğiniz yerler varsa yazarsanız sevinirim.)

void matriscizer(int a)
{
int i=0;
int j;
int matris[a-1][a-1];

while(i<a)
{
j=0;
while(j<a)
{
if(a%2==1)
{
if(j==a/2 || i==a/2)
printf("1 ");
else
printf("0 ");
}

else
{
if((a/2==j || a/2==j+1) || (a/2==i || a/2==i+1))
printf("1 ");
else
printf("0 ");
}
j++;
}
i++;
printf("\n");
}
}

int main()
{
int a;
printf("kare matrisinizin bir kenar uzunlugu ne kadar olsun? :");
scanf("%d", &a);

matriscizer(a);
}

osmansametoz
Автор

Hocam 2 tabanında logaritma alma örneği için bir sorum var size. Klavyeden 33 girdiğimde ekran çıktısında 6 veriyor. 32-64 arası tüm sayılar için böyle oluyor. 33 sayısının 2 tabanındaki logaritma karşılığı 5 küsür bir değer normalde. Ama sizin de dediğiniz gibi integer tipinde olduğu için 5 basması gerekmiyor mu?

yunusemreolmez
Автор

Soru 1 için alternatif çözüm




#include <stdio.h>
int main()
{
// ana fonksiyon başladı
int sayi ;
printf( "Bir sayi giriniz: " );
scanf( "%d", &sayi );
int satir, sutun;
if (sayi %2 ==1 ){// eğer girilen sayi tek ise ( sayi/2 +1) için 1 geri kalanlar için 0
for ( satir =1; satir<=sayi; satir++ ) { // ilk for başladı
for( sutun =1; sutun<=sayi; sutun++ ) { //ikinci for başladı
if (sutun == arti || satir ==arti)
"1\t" );
else
"0\t" );
} // ikinci for bitti
printf( "\n" );

} // ilk for bitti
} // if sonu
else { // eğer girilen sayi çift ise hem sayi/ 2 hemde (sayi/ 2 +1) için 1 diğerleri için 0 yazılacak
for ( satir=1 ; satir <=sayi; satir++){ // ilk for başladı
for ( sutun=1; sutun <=sayi; sutun ++) {//ikinci for bailadı
int arti = sayi/2 ;
if (satir == arti || sutun ==arti || sutun == arti+1 || satir ==arti+1) {
"1\t");
} // if bitti
else
( "0\t" );

}
ikinci for bitti
printf("\n");
}
ilk for bitti

}//else bitti

} // ana fonksiyon bitti

ibrahimgezer
Автор

Logaritma için farklı bir çözüm
#include <stdio.h>// Sayıların 2 tabanındaki logaritmasını alan program y(tam sayı olarak)
int main() {
int i=0;
int n;
printf("Lutfen 2 tabanida logaritmasi alinacak sayiyi giriniz:");
scanf("%d", &n);

while (n!=1){
n=n/2;
i=i+1;
}
printf("Sonuc:%d", i);
}

yusufani
Автор

Hocam 7%2 yi 3 diye mi yazıyordu yoksa 4 diye mi yazıyordu unuttum hatırlatır mısnız?

burakyldrm
Автор

Hocam 2. örnekteki asal sayı bulma c code unu flagsiz nasıl yapabiliriz peki ? sizin yolunuz tabi ki girilen sayı oldugu için nispeten kısa bir algoritma fakat 1000 e kadar olan asal sayıları çıkartmak istediğimizde bu teker teker denemek uzun bir yol olmaz mı ?

saygılarımla.

cihanWRLD
Автор

Log2 tabanındaki değerini bulan program için söyle yaptım:
#include<stdio.h>
#include<conio.h>

int main(){
int ustel=1;
int i, j, n;
printf("Bir Sayi Giriniz, O Sayinin Log2 Tabanindaki Yaklasik Degerini Verelim :");
scanf("%d", &n);

for(i=1; ; i++){

ustel=ustel*2;
if(ustel>n){
printf("%d - %d arasindadir", i-1, i);
break;

}
if(ustel==n){
printf("%d dir", i);
break;
}
}
}

sahinutkubozkurt