C ile harf girişinde tekrar sayı girilmesini sağlamak.

Bu konuyu okuyanlar

zoomtr

Öğrenci
Katılım
6 Aralık 2020
Mesajlar
1
Reaksiyon puanı
1
Puanları
3
Yaş
38
Arkadaşlar merhaba. Ödev için Matematiksel bir işlemde harf girişini engelleyip kullanıcının tekrar sayı girmesini sağlamam lazım. isalpha komutunu kullanmam gerektiğini düşünüyorum ama gerçel sayılardan dolayı float veya double ile kullanmam gerekiyor. İkisiyle de çalıştıramadım. Yardımcı olursanız çok sevinirim. Çıkmaza girdim. 3 gündür beynim patladı.

İşlemimiz bu;

C:
#include <stdio.h>
#include <math.h>

int main() {
    float a, b, c, discriminant, x1, x2, r, i;

    printf("coefficient of x^2: ");
    scanf("%f", &a);

    printf("coefficient of x: ");
    scanf("%f", &b);

    printf("constant term: ");
    scanf("%f", &c);

    discriminant = pow(b,2) - 4*a*c;

    if(discriminant > 0) {
        x1 = (-b + sqrt(discriminant))/(2*a);
        x2 = (-b - sqrt(discriminant))/(2*a);

        printf("x1 = %.2f \n", x1);
        printf("x2 = %.2f \n", x2);

    } else if (discriminant == 0) {
        x1 = -b/(2*a);
        x2 = -b/(2*a);

        printf("x1 = %.2f \n", x1);
        printf("x2 = %.2f \n", x2);
    } else {
        r = -b/(2*a);
        i = sqrt(-discriminant)/(2*a);

        printf("x1 = %.2f +i %.2f \n", r, i);
        printf("x2 = %.2f -i %.2f \n", r, i);

    }

    return 0;
}
 

Mehmet_Emir

Doçent
Katılım
10 Eylül 2020
Mesajlar
896
Reaksiyon puanı
1,179
Puanları
93
C:
while(true) {
    printf("coefficient of x^2: ");
    scanf("%f", &a);

    printf("coefficient of x: ");
    scanf("%f", &b);

    printf("constant term: ");
    scanf("%f", &c);
    if(a==0) {
        printf("coeficient of x^2: ");
        scanf("%f",&a);
    }
    if(b==0) {
        printf("coefficient of x: ");
        scanf("%f",&b);
    }
    if(c==0) {
        printf("constant term: ");
        scanf("%f",&c);
    }
    if(c!=0 && b!=0 && a!=0){
        break;
    }
}
Girdiyi alma bölümüne bu kodu yazıp dene.
 
Üst