Çözüldü C ile puana göre kazanılan üniversiteyi yazdırma algoritması nasıl yapılır?

Bu konu çözüldü olarak işaretlenmiştir. Çözülmediğini düşünüyorsanız konuyu rapor edebilirsiniz.

Arocyn

Hectopat
Katılım
28 Mart 2018
Mesajlar
2.050
Çözümler
18
Yer
Burdur Krallığı
C dilinde yapılması gereken ödevim var ve bunun için bir rehbere ihtiyaç duyuyorum. Takıldığım bazı noktaları danışabileceğim, yardımcı olabilecek, C dili bilen biri bana yardım ederse çok mutlu olurum. Ödevlerim biraz uzun ve her hata için veya her aklıma takılan yer için konu açmak istemiyorum. O yüzden böyle bir yönteme başvuruyorum. Hemen başlayabiliriz. Ben aşağıdaki kod parçasında hata alıyorum ve hatayı anlayamadım. Tek if varken düzgün çalışıyordu, şimdi öyle değil. Programın amacı öğrenci istenen notları girecek ve A, B ve C üniversiteleri için bunu karşılıyor mu diye kontrol edecek. Aslına bakarsanız, yapıyı da tam oturtamadım. Her şey karışık şu an. :D Yardımcı olabileceklere teşekkürler.
C:
#include <stdio.h>

int main(void)
    {
        int ALES[100];
      
        printf("ALES Notunuzu Giriniz: ");
           scanf("%d", ALES);
          
           double ORT[4];
         
           printf("Not Ortalamanizi Giriniz: ");
           scanf("%f", ORT);
         
           int MUL[100];
         
        printf("Mulakat Notunuzu Giriniz: ");
           scanf("%d", MUL);
         
           int YDS[100];
         
        printf("YDS Notunuzu Giriniz: ");
           scanf("%d", YDS);
         
           int TOEFL[100];
         
           printf("TOEFL Notunuzu Giriniz: ");
           scanf("%d", TOEFL);
         
           //A Üniversitesi İçin
           //ALES veya Not Ort. kullanacak
           //ALES
           if (ALES>=70) printf("ALES notunuz yeterli.");
           else printf("ALES notunuz yetersiz.");
           //ORT
           if (ORT>=3) printf("Not ortalamanız yeterli.");
           else printf("Not ortalamanız yetersiz.");
         
           //MUL
           if (MUL>=60) printf("Mulaket ortalamanız yeterli.");
           else prinf("Mulakat ortalamanız yetersiz.");
        
           //YDS ya da TOEFL notunu kullanacak
           //YDS
           if (YDS>=70) printf("YDS notunuz yeterli.");
           else printf("YDS notunuz yetersiz.");
           //TEOFL
           if (TOEFL>=200) printf("TEOFL notunuz yeterli.");
           else printf("TOEFL notunuz yetersiz.");
     
         
    }
 
Son düzenleyen: Moderatör:
Çözüm
Onlar array değil, değişken olmalı.
Değişkenleri her zaman ilklendir.
Değişkenlerin küçük harfle başlaması adettir.
scanf ile veri alırken adresi verilir.
printf sonuna \n kullan.
if/else'lerde girinti kullan.

İşim olduğu için tipini düzeltmekle uğraşamadım. Ama gördüğüm kadarıyla çalışıyor.

Kod:
#include <stdio.h>

int main() {
    int ALES = 0;
    double ORT = 0.0;
    int MUL = 0;
    int YDS = 0;
    int TOEFL = 0;

    printf("ALES Notunuzu Giriniz: ");
    scanf("%d", &ALES);

    printf("Not Ortalamanizi Giriniz: ");
    scanf("%lf", &ORT);

    printf("Mulakat Notunuzu Giriniz: ");
    scanf("%d", &MUL);

    printf("YDS Notunuzu Giriniz: ");
    scanf("%d", &YDS);

    printf("TOEFL Notunuzu Giriniz: ");
    scanf("%d", &TOEFL);

    //A Üniversitesi İçin
    //ALES veya Not Ort. kullanacak
    //ALES
    if (ALES >= 70) printf("ALES notunuz yeterli.\n");
    else printf("ALES notunuz yetersiz.\n");
    //ORT
    if (ORT >= 3) printf("Not ortalamanız yeterli.\n");
    else printf("Not ortalamanız yetersiz.\n");

    //MUL
    if (MUL >= 60) printf("Mulaket ortalamanız yeterli.\n");
    else printf("Mulakat ortalamanız yetersiz.\n");

    //YDS ya da TOEFL notunu kullanacak
    //YDS
    if (YDS >= 70) printf("YDS notunuz yeterli.\n");
    else printf("YDS notunuz yetersiz.\n");
    //TEOFL
    if (TOEFL >= 200) printf("TEOFL notunuz yeterli.\n");
    else printf("TOEFL notunuz yetersiz.\n");

    return 0;
}
Yazmayı unutmuşum. printf'lerin birisinde t yoktu.
Onlar array değil, değişken olmalı.
Değişkenleri her zaman ilklendir.
Değişkenlerin küçük harfle başlaması adettir.
scanf ile veri alırken adresi verilir.
printf sonuna \n kullan.
if/else'lerde girinti kullan.

İşim olduğu için tipini düzeltmekle uğraşamadım. Ama gördüğüm kadarıyla çalışıyor.

Kod:
#include <stdio.h>

int main() {
    int ALES = 0;
    double ORT = 0.0;
    int MUL = 0;
    int YDS = 0;
    int TOEFL = 0;

    printf("ALES Notunuzu Giriniz: ");
    scanf("%d", &ALES);

    printf("Not Ortalamanizi Giriniz: ");
    scanf("%lf", &ORT);

    printf("Mulakat Notunuzu Giriniz: ");
    scanf("%d", &MUL);

    printf("YDS Notunuzu Giriniz: ");
    scanf("%d", &YDS);

    printf("TOEFL Notunuzu Giriniz: ");
    scanf("%d", &TOEFL);

    //A Üniversitesi İçin
    //ALES veya Not Ort. kullanacak
    //ALES
    if (ALES >= 70) printf("ALES notunuz yeterli.\n");
    else printf("ALES notunuz yetersiz.\n");
    //ORT
    if (ORT >= 3) printf("Not ortalamanız yeterli.\n");
    else printf("Not ortalamanız yetersiz.\n");

    //MUL
    if (MUL >= 60) printf("Mulaket ortalamanız yeterli.\n");
    else printf("Mulakat ortalamanız yetersiz.\n");

    //YDS ya da TOEFL notunu kullanacak
    //YDS
    if (YDS >= 70) printf("YDS notunuz yeterli.\n");
    else printf("YDS notunuz yetersiz.\n");
    //TEOFL
    if (TOEFL >= 200) printf("TEOFL notunuz yeterli.\n");
    else printf("TOEFL notunuz yetersiz.\n");

    return 0;
}
Yazmayı unutmuşum. printf'lerin birisinde t yoktu.
 
Son düzenleme:
Çözüm
@Vavien. Hocam yanlışlarımı iyice anladım sizin yaptığınız düzeni de iyice anladım. Kendim kodu ödevime göre düzenledim büyük oranda. Çok teşekkürler. Bir sorum daha olacak hocam. Ben case biçiminde değil de if-else şeklinde bayağı küçülttüm kodları. Şu anki hali ile en fazla 4 tane koşul var. Ben bu koşulları hepsi doğru ise tek bir şey yazdırmak istiyorum ekrana onu nasıl ayarlayacağım bir şey bulamadım. Bu konuda bana yardımcı olur musunuz?
 
Kod:
#include <stdio.h>
#include <string.h>
#define N 256

int main() {
    int MUL     = 0;
    int YDS     = 0;
    int ALES    = 0;
    int TOEFL   = 0;
    int flag    = 1;
    double ORT  = 0.0;
    char str[N];
   
    printf("ALES notunuzu giriniz: ");
    scanf("%d", &ALES);

    printf("Not ortalamanizi giriniz: ");
    scanf("%lf", &ORT);

    printf("Mulakat notunuzu giriniz: ");
    scanf("%d", &MUL);

    printf("YDS notunuzu giriniz: ");
    scanf("%d", &YDS);

    printf("TOEFL notunuzu giriniz: ");
    scanf("%d", &TOEFL);

    if (ALES < 70) {
        strcat(str, "ALES notunuz yetersiz.\n");
        flag = 0;
    }
   
    if (ORT < 3.0) {
        strcat(str, "Not ortalamanız yetersiz.\n");
        flag = 0;
    }

    if (MUL < 60) {
        strcat(str, "Mulakat ortalamanız yetersiz.\n");
        flag = 0;
    }

    if (YDS < 70) {
        strcat(str, "YDS notunuz yetersiz.\n");
        flag = 0;
    }
   
    if (TOEFL < 200) {
        strcat(str, "TOEFL notunuz yetersiz.\n");
        flag = 0;
    }
   
   
    if (flag) {
        printf("Tum notlariniz yeterli.\n");
    }
    else {
        printf("%.256s", str);
    }

    return 0;
}
 
Hocam yaptığınız şeyleri pek anlamadım ama. Benim demek istediğim attığım koddaki şartlar sağlanıp sağlanmadığını nasıl denetleyebilirim? Printf kısımlara ihtiyacım yok ben onu programdan gerii dönüş alabilmek için eklemiştim.
[CODE lang="c" title="C"]//A Üniversitesi İçin
//ALES ve ORT

if (ALES >= 70); //printf("ALES notunuz yeterli.\n");
else
if (ORT >= 3); //printf("Not ortalamaniz yeterli.\n");

//MUL
if (MUL >= 60); //printf("Mulakat notunuz yeterli.\n");
//else printf("Mulakat notunuz yetersiz.\n");

//YDS ve TEOFL
if (YDS >= 70); //printf("YDS notunuz yeterli.\n");
else
if (TOEFL >= 200); //printf("TEOFL notunuz yeterli.\n");

//Bu şartlar doğru ise A üniversitesinde yüksek lisans yapabilirsiniz demesi lazım
[/CODE]
 
Bir bayrak koydum. İlk değeri 1. Else'lerin herhangi birine girerse sıfır yapıyorum. En sonda bayrağım 1 ise hiçbirine girmemiş, yani tüm şartları sağlamış demektir. C'de değişkenler sıfır değilse if içerisinde mantıksal doğru döndürürler.

Sıfırlar için ise tek tek yazdırmak yerine bir string'de topladım, o şekilde yazdırdım.

Bu arada TOEFL 120 üzerinden değil mi? Ben mi yanlış biliyorum?
 
Bu arada TOEFL 120 üzerinden değil mi? Ben mi yanlış biliyorum?
Aynısını hocama sordum bana "Takılma ona dediğim gibi yapınız." dedi. Garip bir durum açıkçası. :D
Hocam dediğiniz flag olayını yapmaya çalıştım ama hata alıyorum sorun neden kaynaklanıyor anlayamadım? @Vavien.

[CODE lang="c" title="C"]#include <stdio.h>
#include <string.h>
#define N 256

int main() {
int ALES = 0;
double ORT = 0.0;
int MUL = 0;
int YDS = 0;
int TOEFL = 0;
int DIS = 0;
char str[N];

printf("ALES Notunuzu Giriniz: ");
scanf("%d", &ALES);

printf("Not Ortalamanizi Giriniz: ");
scanf("%lf", &ORT);

printf("Mulakat Notunuzu Giriniz: ");
scanf("%d", &MUL);

printf("YDS Notunuzu Giriniz: ");
scanf("%d", &YDS);

printf("TOEFL Notunuzu Giriniz: ");
scanf("%d", &TOEFL);

printf("Disiplin cezaniz var mi? (0: Hayir 1: Evet)");
scanf("%d", &DIS);

//A Üniversitesi İçin
//ALES ve ORT

if (ALES >= 70); {
else
if (ORT >= 3);
flag = 0;
}

//MUL
if (MUL >= 60); {
flag = 0;
}

//YDS ve TEOFL
if (YDS >= 70); {
else
if (TOEFL >= 200);
flag = 0;
}

if (flag) {
printf("A Universitesinde yuksek lisans yapabilirsiniz!\n");
}
else {
printf("%.256s", str);
}

[/CODE]
Hocam ben sorunları hallettim başka sorunlar çıktı kendim araştırmaya devam ediyorum. Buraya kadar olan yardımlarınız için tekrardan teşekkürler. :D
 

Dosya Ekleri

  • Ekran Görüntüsü (809).png
    Ekran Görüntüsü (809).png
    155,2 KB · Görüntüleme: 29
Son düzenleme:
Son paylaştığın kod bloğunda flag değişkeni tanımlı değil. If else yapısını da yanlış yazmışsın. Aslında paylaştığın fotoğrafta yazıyor.
Değişkenleri tanımladığın kısma ekle.

C++:
int flag = 1;

C++:
if (ALES <= 70) {
	if (ORT >= 3) {
		flag = 0;
	}
 }

 //MUL
 if (MUL >= 60) {
	flag = 0;
 }

 //YDS ve TEOFL.
 if (YDS <= 70) {
	 if (TOEFL >= 200) {
		flag = 0;
	 }
 }

Son paylaştığın kod bloğunda bir mantık hatası var gibi ama paylaştığın kod bloğunda yukarı da verdiğim işlemi yaptırmaya çalışmışsın.
 
Son paylaştığın kod bloğunda flag değişkeni tanımlı değil. If else yapısını da yanlış yazmışsın.
Bu düzelttim. Hocam yine benzer bir sorun alıyorum şu an kafam çok karıştı. Son olarak kodu şu hale çevirdim:
[CODE lang="c" title="C"]#include <stdio.h>


int main() {
int ALES = 0;
double ORT = 0.0;
int MUL = 0;
int YDS = 0;
int TOEFL = 0;
int DIS = 0;
int a = 0;
int b = 0;
int c = 0;

printf("ALES Notunuzu Giriniz: ");
scanf("%d", &ALES);

printf("Not Ortalamanizi Giriniz: ");
scanf("%lf", &ORT);

printf("Mulakat Notunuzu Giriniz: ");
scanf("%d", &MUL);

printf("YDS Notunuzu Giriniz: ");
scanf("%d", &YDS);

printf("TOEFL Notunuzu Giriniz: ");
scanf("%d", &TOEFL);

printf("Disiplin cezaniz var mi? (0: Hayir 1: Evet)");
scanf("%d", &DIS);

//A Üniversitesi İçin mantıksal opratörler ile bir daha dene.
//ALES ve ORT

if (ALES >= 70);
else a++;
if (ORT >= 3);
else a++;

//MUL
if (MUL >= 60);
else a++;

//YDS ve TEOFL
if (YDS >= 70);
else a++;
if (TOEFL >= 200);
else a++;

if (a == 0);
printf("A Universitesinde yuksek lisans yapabilirsiniz!\n");
else printf("A univerisitesinde yuksek lisans yapamazsınız.\n");
[/CODE]
Flag olayını anlayamadım hocamız da derste de göstermedi zaten kullanırsam açıklamam gerekecek. Okuyabildiğiniz üzere kod biraz garip oldu böyle çözmeyi düşündüm.
@Vavien. @OrangeX Hocalarım ben aşağıdaki kodda toplama fonksiyonu yazmaya çalıştım sanırsam onu da yazamadım ama üs alma fonksiyonu ve istediğim şekilde üs almasını sağlayabiliyorum. Ben çıkan sonuçları nasıl toplayabilirim yardımcı olur musunuz?
[CODE lang="c" title="x^0+x^1+....+x^n"]#include <stdio.h>
#include <conio.h>
#include <math.h>

int us(int a, int b) {

int sonuc=1;
int i=0;
for(i=0;i<b;i++){
sonuc*= a;
}
return sonuc;
}

int top(int a, int b){
int sonu=1;
int i=0;
for(i=0;i<b;i++);{
sonu= a+b;
}
return sonu;
}

int main() {

int x = 0;
int n = 0;
int y = 0;
int sonuc=0;
int son=0;

printf("X degerini giriniz: ");
scanf("%d", &x);

printf("N degerini giriniz: ");
scanf("%d", &n);

for(y=0; y <= n; y++)
{
son = us(x, y);


}

getch();
return 0;
}[/CODE]
 
Son düzenleme:

Geri
Yukarı