Birincisi neden
stoi()
kullandın? İlk hata bu. stoi kullanmışsın ama dahil bile etmemişsin. Ek olarak bu fonksiyonun burada işi ne? Hangi stringi integer'a dönüştürmeye çalışıyorsun? Zaten vize ve final değişkenlerin integer. İkincisi kaç kişinin girileceğini daha compileda belirlemişsin. Sınıf 5 değil 10 kişi olursa? Diziyi farklı bir fonksiyonun içinde oluşturup, dizinin boyutunu ayarlayabilirsin mesela.
Örneğin;
[CODE lang="cpp" title="Kod"]#include <iostream>
using namespace std;
inline int ortalama(int v, int f) {
return v * 0.3 + f * 0.7;
}
void sinif(int n) {
int v[n], f[n];
char durum[n];
for(int i = 0; i < n; i++) {
cout << "Lütfen vize notunu giriniz: ";
cin >> v
;
cout << "Lütfen final notunu giriniz: ";
cin >> f;
if(ortalama(v, f)) {
cout << "Geçti." << endl;
durum = 'G';
}
else {
cout << "Kaldı." << endl;
durum = 'K';
}
}
}
int main() {
setlocale(LC_ALL,"Turkish");
int n;
cout << "Lütfen öğrenci sayısını giriniz: ";
cin >> n;
sinif;
return 1;
}[/CODE]
Attığım kodda sınıf diye bir başka fonksiyon oluşturup, sınıfın içerisine tanımladım diziyi. Böylece ana fonksiyon içerisinde dizinin büyüklüğünü belirleyebiliyorum. Bu tarz detaylara da dikkat etmen gerek. Ek olarak ortalama için salt bir fonksiyon oluşturmak yerine inline fonksiyon oluşturabilirsin. Ne olduğunu bilmiyorsan google'dan bir araştır derim.