حاولت أن أكتب برنامجًا للصف الدراسي ويعكس A+ فقط


سي ++
#include<stdio.h>

int main()
{
    int marks;
    printf("Enter the Marks:");
    scanf("%d", &marks);

    if("marks >= 95"){
        printf("Grade is A+ \n");
    }
    else if("marks > 80 && marks < 95"){
        printf("Grade is B+ \n");
    }
    else if("marks > 70 && marks < 80"){
    printf("Grade is B \n");
    }
    else {
        printf("Grade is C \n");
    }
    printf("Thank you!");
    return 0;
}

ما حاولت:

لقد تعلمت عن وظيفة if و else if. لقد حاولت تجميع الكود ولم يعمل كما هو مفترض.

الحل 1

سي ++
if("marks >= 95"){
   ^           ^

لقد وضعت الخاص بك if التعبيرات الموجودة بين علامتي اقتباس مما يعني أنه لن يتم تقييمها أبدًا*. ما عليك سوى إزالة علامات الاقتباس حتى يتمكن المترجم من إنشاء اختبار التعبير المناسب.

*في الواقع، لأن الخيوط ليست كذلك NULL يتم تقييمهم دائمًا على أنه TRUE.

الحل 2

if و else if ليست وظائف. إنها بنيات لغوية.

قلت أنك تعلمت if، ولكن ليس بما فيه الكفاية. لا تضع تعبيراتك الشرطية داخل علامتي الاقتباس.

سي ++
if("marks >= 95"){

يصبح

سي ++
if(marks >= 95)
{

نظرًا لأنك مبتدئ، أقترح بشدة أن تضع الدعامة المتعرجة المفتوحة على خطها الخاص حتى تتمكن بسهولة من تتبع الأقواس التي تصطف مع بعضها البعض.

سي ++
if (marks >= 95)
{
    printf("Grade is A+ \n");
}

الحل 3

للإضافة إلى ما قيل، من المؤكد تقريبًا أن لديك أداة من شأنها أن تساعدك: إنها تسمى مصحح الأخطاء. تعتمد كيفية استخدامه على نظام التحويل البرمجي الخاص بك، ولكن البحث السريع في Google عن اسم IDE و”مصحح الأخطاء” الخاص بك من شأنه أن يوفر لك المعلومات التي تحتاجها. ما يفعله هو أنه يسمح لك بتنفيذ التعليمات البرمجية الخاصة بك سطرًا تلو الآخر وإلقاء نظرة على المتغيرات لمعرفة ما تحتويه، ومتابعة أين تذهب التعليمات البرمجية أثناء تشغيلها.

ضع نقطة توقف على السطر الأول في الوظيفة، وقم بتشغيل التعليمات البرمجية الخاصة بك من خلال مصحح الأخطاء. ثم انظر إلى التعليمات البرمجية الخاصة بك وإلى بياناتك واكتشف ما يجب أن يحدث يدويًا. ثم قم بخطوة واحدة في كل سطر للتأكد من أن ما كنت تتوقع حدوثه هو بالضبط ما حدث. عندما لا يكون الأمر كذلك، فهذا هو الوقت الذي تواجه فيه مشكلة، ويمكنك التراجع (أو تشغيلها مرة أخرى والنظر عن كثب) لمعرفة السبب.

عذرًا، ولكن لا يمكننا القيام بذلك نيابةً عنك – حان الوقت لتتعلم مهارة جديدة (ومفيدة جدًا جدًا): تصحيح الأخطاء!

コメント

タイトルとURLをコピーしました