c++

0
Onaylı Üye
Üye
Katılım
26 Ekim 2007
Mesajlar
136
Tepki puanı
0
arkadaşlar kodu çalıştırdığımda bir hata veriyor yardımcı olurmusunuz anlayamadım

konusu;

Bir öğretmen çoktan seçmeli (a, b, c, d, ve e) bir sınav sonrasında öğrencilerin cevaplarını işaretledikleri formları bir bilgisayar programı ile kontrol edecektir. Soru sayısı 10 tane olup, her sorunun doğru cevap şıkkı programın içinde gömülüdür.


Öğretmen her öğrenci için her soruda işaretlediği şıkkı programa klavyeden girecek ve sonra öğrencinin toplam doğru ve yanlış adedini ekranda görüntüleyecektir.


Her öğrencinin işlemi sonlandığında program hocaya başka öğrenci girip girmeyeceğini soracak, cevap hayır ise program son olarak hocaya toplam öğrenci adedini ve her bir soru için ayrı ayrı doğru ve yanlış cevap sayılarını ekranda görüntülenecektir. Bu uygulamanın C programını yazınız.




#include<stdio.h>
#include<string.h>
#include<conio.h>
void main()
{
int i,d=0,y=0, bulundu=0;
char soru[10];
soru[0]='a';
soru[1]='b';
soru[2]='c';
soru[3]='c';
soru[4]='a';
soru[5]='e';
soru[6]='b';
soru[7]='e';
soru[8]='d';
soru[9]='a';
char x[10];
char cevap='E';
while(cevap=='E')
{
puts("Incelenecek ogrencinin cevap kagidini giriniz..");
for(i=0;i<10;i++)
{
printf("%d. sorunun cevabi giriniz :", i+1);
scanf("%s", &x);
}
for(i=0;i<10;i++)
{
bulundu=0;
printf("%s = %s\n",soru,x);
if(strcmp(soru,x)==0)
{
bulundu=1;
d=d+1;

}
if(bulundu==0)
y=y+1;
}
printf("\n");
printf("dogru sayisi :%d\n", d);
printf("yanlis sayisi :%d\n", y);
printf("Baska sayi girmek istiyor musunuz(devam-E)\n");
cevap=getche();
}
}[/SIZE]
 
0
Onaylı Üye
Üye
Katılım
10 Kasım 2003
Mesajlar
0
Tepki puanı
3
Konum
istanbul
Derleyicim yok ama bir de böyle deneyebilirmisiniz?

Kod:
#include <stdio.h>
#include <string.h>
#include <conio.h>

void main()
{
	int i,d=0,y=0, bulundu=0;
	char soru[10];
	soru[0]='a';
	soru[1]='b';
	soru[2]='c';
	soru[3]='c';
	soru[4]='a';
	soru[5]='e';
	soru[6]='b';
	soru[7]='e';
	soru[8]='d';
	soru[9]='a';

	char x[10];
	char cevap='E';

	while(cevap=='E')
	{ 
		puts("Incelenecek ogrencinin cevap kagidini giriniz..");
		for(i=*;i<10;i++)
		{ 
			printf("%d. sorunun cevabi giriniz :", i+1);
			scanf("%s", &x[i]);
		} 
		for(i=0;i<10;i++) 
		{
			bulundu=0;
			printf("%s = %s\n",soru,x);
			if(strcmp(soru,x)==0)
			{ 
				bulundu=1;
				d=d+1;
			}
			if(bulundu==0)
				y=y+1;
		}
		printf("\n");
		printf("dogru sayisi :%d\n", d);
		printf("yanlis sayisi :%d\n", y);
		printf("Baska sayi girmek istiyor musunuz(devam-E)\n");
		cevap=getch();
	}
}
 
0
Onaylı Üye
Üye
Katılım
26 Ekim 2007
Mesajlar
136
Tepki puanı
0
malesef çalışıyorda düzgün işlem yapmıyor görüntüye ba bakalım ekrandacıkanistediğimiz gibi olmuyor

8e9f925099.png
 
0
Onaylı Üye
Üye
Katılım
10 Kasım 2003
Mesajlar
0
Tepki puanı
3
Konum
istanbul
x yerine x 'si , soru 'yu soru olarak değiştirdim. Array'in hangi elemanını çağıracağımız bildirmemiz gerekiyor.tekrar bir denermisin

Kod:
#include <stdio.h>
#include <string.h>
#include <conio.h>

void main()
{
	int i,d=0,y=0, bulundu=0;
	char soru[10];
	soru[0]='a';
	soru[1]='b';
	soru[2]='c';
	soru[3]='c';
	soru[4]='a';
	soru[5]='e';
	soru[6]='b';
	soru[7]='e';
	soru[8]='d';
	soru[9]='a';

	char x[10];
	char cevap='E';

	while(cevap=='E')
	{ 
		puts("Incelenecek ogrencinin cevap kagidini giriniz..");
		for(i=0;i<10;i++)
		{ 
			printf("%d. sorunun cevabi giriniz :", i+1);
			scanf("%s", &x[i]);
		} 
		for(i=0;i<10;i++) 
		{
			bulundu=0;
			printf("%s = %s\n",soru[i],x[i]);
			if(strcmp(soru[i],x[i])==0)
			{ 
				bulundu=1;
				d=d+1;
			}
			if(bulundu==0)
				y=y+1;
		}
		printf("\n");
		printf("dogru sayisi :%d\n", d);
		printf("yanlis sayisi :%d\n", y);
		printf("Baska sayi girmek istiyor musunuz(devam-E)\n");
		cevap=getch();
	}
}
 
0
Onaylı Üye
Üye
Katılım
26 Ekim 2007
Mesajlar
136
Tepki puanı
0
benim ilk yazdığımda veren hatayı veriyor strcmpde veriyor
HATA:
C:\Documents and Settings\Genel\Desktop\as\Cpp1.cpp(35) : error C2664: 'strcmp' : cannot convert parameter 1 from 'char' to 'const char *'
Conversion from integral type to pointer type requires reinterpret_cast, C-style cast or function-style cast
 
0
Onaylı Üye
Üye
Katılım
10 Kasım 2003
Mesajlar
0
Tepki puanı
3
Konum
istanbul
strcmp string compare demek
ama bizim burada kullandığımız char, yani sadece 1 karakter.. bu nedenle char ile string (char *) arasında dönüşüm yapamıyor
Kod:
if(strcmp(soru[i],x[i])==0)
yerine
Kod:
if(soru[i]  == x[i])
bu şekilde bir deneyin
 
0
Onaylı Üye
Üye
Katılım
26 Ekim 2007
Mesajlar
136
Tepki puanı
0
sorun %s değilde %c olacak mış yardımın için sağolasın
if(soru == x) buda var
 
0
Onaylı Üye
Üye
Katılım
1 Kasım 2007
Mesajlar
52
Tepki puanı
0
kodlari incelemedim calisiyorlarmi bilmiyorum ama program odev kagidinda istenen seyi tam olarak yapmiyor. Her soru icin ayri ayri kac dogru ve yanlis oldugunu hesaplamamis.
 
0
Onaylı Üye
Üye
Katılım
1 Kasım 2007
Mesajlar
52
Tepki puanı
0
her bir soru için ayrı ayrı doğru ve yanlış cevap sayılarını ekranda görüntülenecektir.


ben kodlarin icinde bu isi yapan biyer goremedim.
 
0
Onaylı Üye
Üye
Katılım
26 Ekim 2007
Mesajlar
136
Tepki puanı
0
tamam anladım konuyu tekrar baktım teşekkürler ya yoksa yanlış yollayacaktım ödevi düzenlemeyi yaptım
 
0
Onaylı Üye
Üye
Katılım
26 Ekim 2007
Mesajlar
136
Tepki puanı
0
#include <stdio.h>
#include <string.h>
#include <conio.h>

void main()
{
int i,d=0,y=0,Dogru[10]={0,},Yanlis[10]={0,},OgSay=0, bulundu=0;
char soru[10];// 10 sorunun cevap anahtarını girdim.
soru[0]='a';//bunu daha kolay şekşldede yapılır ben uzununu yaptım
soru[1]='b';
soru[2]='c';
soru[3]='c';
soru[4]='a';
soru[5]='e';
soru[6]='b';
soru[7]='e';
soru[8]='d';
soru[9]='a';

char x[10];
char cevap='E';//Döngüye girebilmesi için cevabı "E" yaptım

while(cevap=='E')//cevap "E" olduğu için döngüye giriyor.
{
puts("Incelenecek Ogrencinin Cevap Kagidini Giriniz..");
puts("Siklar(a,b,c,d,e)'dir...");
for(i=0;i<10;i++)//öğrencinin cevap kağıdını giriyoruz
{
printf("%d. sorunun cevabi giriniz :", i+1);
scanf("%s", &x);
}
for(i=0;i<10;i++) // bu döngüde öğrencinin sorularının gömülü cevap kağıdıyla karşılaştırma yapılıyor.
{
bulundu=0;
printf("%d.soru:%c = %c\n", i+1,soru,x);
if(soru == x)
{
Dogru++;//karşılaştırma işlemindeki cevap doğruysa o soruyu bilen kişi değerini 1 artırır .
bulundu=1;
d=d+1;
}
if(bulundu==0)
Yanlis++;//karşılaştırma işlemindeki cevap yanlışsa o soruyu bilen kişi değerini 1 artırır.
y=y+1;
}
OgSay++;
printf("\n");
printf("dogru sayisi :\t%d\n", d);//öğrencinin doğru cevapları yazılıyor
printf("yanlis sayisi :\t%d\n", y);//yanlış cevaplar yazılıyor
d=0;//başka öğrenci girerken diğer öğrencinin doğru sayısının eklenmemesi için
y=0;//başka öğrenci girerken diğer öğrencinin yanlış sayısının eklenmemesi için
printf("Baska sayi girmek istiyor musunuz(devam-E)\n");
cevap=getch();
printf("\n");
}
printf("Girilen Ogrenci Sayisi:%d\n", OgSay);//girilen öğrenci sayısını yazdırır.
printf("---------------------------\n");
for(i=0;i<10;i++)// bu döngüyü hangi soruyu kaç kişi bildiğini yazdırmak için kullandım.
{
printf("%d. soruyu dogru bilen ogrenci sayisi\t:%d\n",i+1,Dogru);
printf("%d. soruyu yanlis bilen ogrenci sayisi\t:%d\n",i+1,Yanlis);
printf("\n");
}
getche();
}
 
Geri
Üst