ben biraz ilerledim ama kafam karıştı tam anlayamadım soruyu yardımcı olacak var mı tam olarak ne yapacağımı bilmiyorum soruyu anlamadım
#include <stdio.h>
#include <conio.h>
#include <math.h>
#include <stdlib.h>
int main()
{
int Ogrenci[5];
int i;
int ogrenciSayisi;
printf("Kac Adet Ogrenci Girilsin?...\n");
scanf("%u",&ogrenciSayisi);
printf("\n");
for (i = 0; i < ogrenciSayisi; i++)
{
printf("Ogrenci(%u)=", i + 1);
scanf("%d",&Ogrenci[i]);
printf("\n");
}
int ogrenciNumarasi;
char OgrenciAdi[20];
char OgrenciSoyadi[20];
int quiz1;
int quiz2;
int vize;
int proje;
int final;
int ortalama;
int ort(quiz1,quiz2,vize,proje,final);
{
ortalama = ((quiz1*10)/100) + ((quiz2*10)/100) + ((vize*15)/100) + ((proje*35)/100) + ((final*30)/100);
return ortalama;
}
int secim;
printf("Hangi sirada ekrana yazilsin?\n1.Ogrenci Numarasi\n2.Ogrenci Adi\n3.Ogrenci Soyadi\n4.Ogrenci Not Ortalamasi");
scanf("%d",&secim);
getch();
}
Soru:
• Parametre olarak;
- notu girilecek öğrenci sayısı
- öğrenci numarası int
- öğrenci adı char[20]
- öğrenci soyadı char[20]
- quiz1 notu int
- quiz2 notu int
- vize notu int
- proje notu int
- final notu int
Almalıdır.
• Verileri gereğine göre tek boyutlu veya çok boyutlu dizilere kaydedilmeli,
• Alt fonksiyon kullanarak her öğrencinin not ortalamasını aşağıda verilen oranlar ile
hesaplayıp ana fonksiyona gönderilmelidir,
- quiz1 %10
- quiz2 %10
- vize %15
- proje %35
- final %30
• Kullanıcının isteğine göre verileri aşağıdaki sırada ekrana yazdıran,
- öğrenci numarası
- öğrenci adı
- öğrenci soyadı
- öğrencinin not ortalaması
• Program, Sonlanmadan önce "çıkmak için bir tuşa basınız" diyen ve klavyeden bir tuşa
basılana kadar bekleyen
programı yazınız.
Soru metni kotu bir dille yazildigi icin ne istendigini tam olarak anlamamakla beraber, eksik bir takim seyler goruyorum:
- Kod modern bir C dilinde degil. Compiler hatalari ayiklanirken bozulmus gibi.
- Hatalarla beraber uyarilara da dikkat etmek lazim. Butun uyarilari acip, bu halde uyari cikmayana kadar hata duzeltmek lazim.
-
ort
fonksiyonu tanimlanmak istenmis fakat bunu engelleyen 3 hata yapilmis. Fonksiyonlar konusunu tekrar gozden gecirkmek, fonksiyon tanimlayan baska C kodlarina bakmak lazim. - Sorunun isteyip istemediginden emin olamadim ama bir noktada
struct
kullanmak isleri kolaylastirabilir.
Ayrica bu programi yazmadan once soruda istenen akis diyagramini ve algoritmayi cikartmak programi yazma islemini son derece kolaylastiracaktir.
2 Beğeni
Soruyu yazana sorular:
- Bu cumlenin oznesi nedir?
- 1 olmayan bir ogrenci sayisiyla beraber yollanan
final notu int
neyi temsil eder?
- Ogrenci basina 8 parca bilgi olduguna gore 8 adet dizi mi kullanilmasi isteniyor?
- Burada “gondermekten” kasit
return
etmek midir?
- Kullanici istegini nasil ifade etmelidir?
- “Bir tusa basilana kadar beklemenin” standart bir yolu olmadigina gore ENTER beklesek (
getchar
kullansak) olur mu?
6 Beğeni
#include <stdio.h>
#include <conio.h>
#include <math.h>
#include <stdlib.h>
int secim;
int ogrenciNumarasi;
char OgrenciAdi[20];
char OgrenciSoyadi[20];
int quiz1;
int quiz2;
int vize;
int proje;
int final;
int i= 0,n;
int ortalamaBulma(int quiz1,int quiz2,int vize,int proje,int final)
{
int ortalama;
ortalama = ((quiz1*10)/100) + ((quiz2*10)/100) + ((vize*15)/100) + ((proje*35)/100) + ((final*30)/100);
return ortalama;
}
int main()
{
printf("*************************************************\nOnemli NOT: LUTFEN TURKCE KARAKTER KULLANMAYINIZ...\n*************************************************\n");
printf("Adinizi giriniz (En Fazla 20 Karakter):\n");
scanf("%s",&OgrenciAdi);
printf("\nIsminiz = %s\n", OgrenciAdi);
printf("\nSoyadinizi giriniz( En Fazla 20 Karakter) : \n");
scanf("%s",&OgrenciSoyadi);
printf("\nSoy isminiz = %s\n",OgrenciSoyadi);
printf("\nNumaranizi basinda 'b' olmadan giriniz : \n");
scanf("%d",&ogrenciNumarasi);
printf("\nNumaraniz : %d\n",ogrenciNumarasi);
printf("\nQuiz1 notunuzu giriniz : \n");
scanf("%d",&quiz1);
printf("\nQuiz1 notunuz : %d\n",quiz1);
printf("\nQuiz2 notunuzu giriniz : \n");
scanf("%d",&quiz2);
printf("\nQuiz2 notunuz : %d\n",quiz2);
printf("\nVize notunuzu giriniz : \n");
scanf("%d",&vize);
printf("\nVize notunuz : %d\n",vize);
printf("\nProje notunuzu giriniz : \n");
scanf("%d",&proje);
printf("\nProje notunuz : %d\n",proje);
printf("\nFinal notunuzu giriniz : \n");
scanf("%d",&final);
printf("\nFinal notunuz : %d\n",final);
printf("\nNot ortalamaniz = %d\n",ortalamaBulma(quiz1,quiz2,vize,proje,final));
printf("\nHangi sirada ekrana yazilsin?\n1.Ogrenci Numarasi\n2.Ogrenci Adi\n3.Ogrenci Soyadi\n4.Ogrenci Not Ortalamasi\n5.Cikis yapmak icin...\n");
do
{
scanf("%d",&secim);
if (secim == 1)
{
printf("Ogrenci Numarasi = %d\n",ogrenciNumarasi);
}
else if (secim == 2)
{
printf("Ogrenci Adi = %s\n",OgrenciAdi);
}
else if (secim == 3)
{
printf("Ogrenci Soyadi = %s\n",OgrenciSoyadi);
}
else if (secim == 4)
{
printf("Ogrenci Not Ortalamasi = %d\n",ortalamaBulma(quiz1,quiz2,vize,proje,final));
}
else if (secim == 5)
{
printf("Cikis Yapiliyor...");
}
} while (secim != 5);
getch();
}
şu an programımda hiçbir sıkıntı yok, sorunsuz calisiyor biraz gelistirdim fakat…
ben bunları 1 ogrenci icin yaptim birden cok ogrenci icin nasıl yapabilirim?
main
'in icerigini birOgrencininBilgileriniGir
adli bir fonksiyona tasiyip main’den bu fonksiyonu birden fazla kez cagirabilirsin.
Oncesinde global degiskenleri fonksiyonun icine alman, sonra bir sekilde “ana fonksiyona gondermen” lazim.