13 Mart 2010 Cumartesi

C de Doğru ve Yanlış Cevapları Değerlendirme

//www.ethemsulan.com
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#define DOGRU_CEVAP 0x3E1D
int main(int argc, char *argv[])
{
    extern float sinav(int cevap);
    extern int cevaplar();
    int sonuc;
    printf("\ncevaplari giriniz:\n");
    sonuc=sinav(cevaplar());
    printf("\nalinan not=%3.0d\n",sonuc);
    exit(0);
}
    int cevaplar()
    {
    int cevap=0;
    int i;
    char k;
    for(i=0;i<=15;i++)
    {
    k=getche();
    if(k=='d' || k=='D')
    {cevap=cevap|(1<<i);}
}
    printf("\ngirilen cevaplar__%x\n",cevap);
    return cevap;
}
    float sinav(int cevap)
    {
    int y_bit;
    extern int bit_say(int y_bit);
    int sonuc;
    y_bit=cevap^DOGRU_CEVAP;
    printf("\ncevap=%x\n",cevap);
    printf("\ndogru cevap=%x\n",DOGRU_CEVAP);
    sonuc=100*((16-bit_say(y_bit))/16.0);
    return sonuc;
}
    int bit_say(int l)
    {
    int i,s=0;
    for(i=0;i<=15;i++)
    if(l&(1<<i))++s;
    return s;
}

Hiç yorum yok:

Yorum Gönder