İyinet'e Hoşgeldiniz!

Türkiye'nin En Eski Webmaster Forum'una Hemen Kayıt Olun!

Kayıt Ol!

c++

wizz

0
İyinet Üyesi
Katılım
26 Ekim 2007
Mesajlar
136
Reaction score
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]
 

ejder

0
İyinet Üyesi
Katılım
10 Kasım 2003
Mesajlar
0
Reaction score
4
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();
	}
}
 

wizz

0
İyinet Üyesi
Katılım
26 Ekim 2007
Mesajlar
136
Reaction score
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
 

ejder

0
İyinet Üyesi
Katılım
10 Kasım 2003
Mesajlar
0
Reaction score
4
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();
	}
}
 

wizz

0
İyinet Üyesi
Katılım
26 Ekim 2007
Mesajlar
136
Reaction score
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
 

ejder

0
İyinet Üyesi
Katılım
10 Kasım 2003
Mesajlar
0
Reaction score
4
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
 

wizz

0
İyinet Üyesi
Katılım
26 Ekim 2007
Mesajlar
136
Reaction score
0
sorun %s değilde %c olacak mış yardımın için sağolasın
if(soru == x) buda var
 

sekizbit

0
İyinet Üyesi
Katılım
1 Kasım 2007
Mesajlar
52
Reaction score
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.
 

sekizbit

0
İyinet Üyesi
Katılım
1 Kasım 2007
Mesajlar
52
Reaction score
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.
 

wizz

0
İyinet Üyesi
Katılım
26 Ekim 2007
Mesajlar
136
Reaction score
0
tamam anladım konuyu tekrar baktım teşekkürler ya yoksa yanlış yollayacaktım ödevi düzenlemeyi yaptım
 

wizz

0
İyinet Üyesi
Katılım
26 Ekim 2007
Mesajlar
136
Reaction score
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();
}
 

Türkiye’nin ilk webmaster forum sitesi iyinet.com'da forum üyeleri tarafından yapılan tüm paylaşımlardan; Türk Ceza Kanunu’nun 20. Maddesinin, 5651 Sayılı Kanununun 4. maddesinin 2. fıkrasına göre, paylaşım yapan üyeler sorumludur.

Backlink ve Tanıtım Yazısı için iletişime geçmek için Skype Adresimiz: .cid.1580508955483fe5

seo ajansı , sosyal medya yönetimi
Üst