Son kullanma tarihi geçmiş, bayatlamış bir tarayıcı kullanıyorsanız, Mercedes kullanmak yerine tosbağaya binmek gibi... Web sitelerini düzgün görüntüleyemiyorsanız eh, bi' zahmet tarayıcınızı güncelleyiniz. Modern Web standartlarını karşılayan bir tarayıcı alternatifine göz atın.
Programlama mantığına aykırı o. Fonksiyonlar o yüzden var. Fonksiyonunuzun adı kombinasyon ise içinde sadece kombinasyon olacak. İçinde faktöriyel (adı öyle olmasa da yaptığınız şey o) olduğunda onu da ayrı bir fonksiyon olarak oluşturmak en doğrusu.
Ben herhangi bir IDE'ye yapıştırmadan senin kodundan hiçbir şey anlamıyorum. Kodların yazım tarzları arasındaki farka da dikkat et.
Sadece kodunu düzeltmem bile vaktimi alıyor. Düzeltmekten kastım okunabilir hale getirmek.
Kod:
#include<stdio.h>
int main(){
int a, b, komb;
int ust = 1;
int alt = 1;
printf("Eleman sayisi: ");
scanf("%d", &a);
printf("Secim sayisi: ");
scanf("%d", &b);
for(; b != 0; b--){
for(; a != 0; a--){
}
ust *= a;
alt *= b;
}
komb = ust / alt;
printf("Cevabiniz: %d", komb);
return 0;
}
Çalışmasına gelecek olursak 2 tane for açmışsın ama tekinin içi boş.
Amacını da hala tam anlamadım. Kombinasyon eleman sayısının faktöriyelinin seçim sayısının faktöriyeline bölümü değil. Permütasyon o, ki onda da tam olarak böyle işlemiyor.
Yaptığın for döngüsünde içeridekine ilk girdiğinde a zaten sıfır oluyor. Sonra çarp babam çarp. Pay her türlü sıfır olduktan sonra ne anlamı kaldı ki?
Alt ve üst dediklerin sanırım pay ve paydayı ifade ediyor. Onları o şekilde hesaplayamazsın, ya ek değişken ya da farklı bir şey kullanmalısın.
Şöyle yapalım biz. Bilinen, n'den r kadar aç formülünü kullanalım.
Dikkat et, for'lar artık iç içe değil.
Kod:
#include<stdio.h>
int main(){
int a = 0;
int b = 0;
int ust = 1;
int alt = 1;
int c = 0;
printf("Eleman sayisi: ");
scanf("%d", &a);
printf("Secim sayisi: ");
scanf("%d", &b);
c = a - b;
for (; a != c; --a){
ust *= a;
}
for (; b != 0; --b){
alt *= b;
}
printf("Cevabiniz: %d", ust / alt);
return 0;
}
Normalde öyle yaparım ama yeni başladığı belli. Kendisinin nasıl yapması gerektiğini anlatmak istedim. Her şey için kütüphane eklemek de biraz saçma oluyor. Sınavda hoca üs alma sorduğunda ve kütüphane kullanmak yasak dediğine boş kağıt verenler gördü bu gözler.
Programlama mantığına aykırı o. Fonksiyonlar o yüzden var. Fonksiyonunuzun adı kombinasyon ise içinde sadece kombinasyon olacak. İçinde faktöriyel (adı öyle olmasa da yaptığınız şey o) olduğunda onu da ayrı bir fonksiyon olarak oluşturmak en doğrusu.
Ben herhangi bir IDE'ye yapıştırmadan senin kodundan hiçbir şey anlamıyorum. Kodların yazım tarzları arasındaki farka da dikkat et.
Sadece kodunu düzeltmem bile vaktimi alıyor. Düzeltmekten kastım okunabilir hale getirmek.
Kod:
#include<stdio.h>
int main(){
int a, b, komb;
int ust = 1;
int alt = 1;
printf("Eleman sayisi: ");
scanf("%d", &a);
printf("Secim sayisi: ");
scanf("%d", &b);
for(; b != 0; b--){
for(; a != 0; a--){
}
ust *= a;
alt *= b;
}
komb = ust / alt;
printf("Cevabiniz: %d", komb);
return 0;
}
Çalışmasına gelecek olursak 2 tane for açmışsın ama tekinin içi boş.
Amacını da hala tam anlamadım. Kombinasyon eleman sayısının faktöriyelinin seçim sayısının faktöriyeline bölümü değil. Permütasyon o, ki onda da tam olarak böyle işlemiyor.
Yaptığın for döngüsünde içeridekine ilk girdiğinde a zaten sıfır oluyor. Sonra çarp babam çarp. Pay her türlü sıfır olduktan sonra ne anlamı kaldı ki?
Alt ve üst dediklerin sanırım pay ve paydayı ifade ediyor. Onları o şekilde hesaplayamazsın, ya ek değişken ya da farklı bir şey kullanmalısın.
Şöyle yapalım biz. Bilinen, n'den r kadar aç formülünü kullanalım.
Dikkat et, for'lar artık iç içe değil.
Kod:
#include<stdio.h>
int main(){
int a = 0;
int b = 0;
int ust = 1;
int alt = 1;
int c = 0;
printf("Eleman sayisi: ");
scanf("%d", &a);
printf("Secim sayisi: ");
scanf("%d", &b);
c = a - b;
for (; a != c; --a){
ust *= a;
}
for (; b != 0; --b){
alt *= b;
}
printf("Cevabiniz: %d", ust / alt);
return 0;
}
Normalde öyle yaparım ama yeni başladığı belli. Kendisinin nasıl yapması gerektiğini anlatmak istedim. Her şey için kütüphane eklemek de biraz saçma oluyor. Sınavda hoca üs alma sorduğunda ve kütüphane kullanmak yasak dediğine boş kağıt verenler gördü bu gözler.