اذهب إلى المحتوى

السؤال

نشر (معدل)

ايضا لدي برمجة في كود c

حيث ال output المطلوب مني هو 

Awesome Diagona1s

و 

Awesome Column and Diagona1

في هذا الكود الذي انشئته ما المشكله وكيف يمكني حلها 

#include <stdio.h>



int main() {

    int n1, n2, n3, n4, n5, n6, n7, n8, n9;

    scanf("%d %d %d %d %d %d %d %d %d", &n1, &n2, &n3, &n4, &n5, &n6, &n7, &n8, &n9);



    int row1 = n1 + n2 + n3;

    int row2 = n4 + n5 + n6;

    int row3 = n7 + n8 + n9;

    int col1 = n1 + n4 + n7;

    int col2 = n2 + n5 + n8;

    int col3 = n3 + n6 + n9;

    int diag1 = n1 + n5 + n9;

    int diag2 = n3 + n5 + n7;



    if (row1 == row2 && row2 == row3 && row3 == col1 && col1 == col2 && col2 == col3 && col3 == diag1 && diag1 == diag2) {

        printf("Awesome Numbers");

    } else if (row1 == row2 || row1 == row3 || row2 == row3) {

        printf("Awesome Rows");

    } else if (col1 == col2 || col1 == col3 || col2 == col3) {

        printf("Awesome Columns");

    } else if (diag1 == diag2) {

        printf("Awesome Diagona1s");

       

    } 

    else if 

            (row1 == col1 || row1 == col2 || row1 == col3 || row1 == diag1 || row1 == diag2 ||

            row2 == col1 || row2 == col2 || row2 == col3 || row2 == diag1 || row2 == diag2 ||

            row3 == col1 || row3 == col2 || row3 == col3 || row3 == diag1 || row3 == diag2){ 

            printf("Awesome Row and Column");

     }

            else if (col1 == diag1 ) { 

            printf("Awesome Column and Diagona1");

        

    }



    return 0;

}

 

حيث ان يتحقق معي الشرط الاولAwesome Diagona1s والثاني لا يتحقق 

 

تم التعديل في بواسطة Mustafa Suleiman
تعديل عنوان السؤال ونص السؤال

Recommended Posts

  • 0
نشر

يمكن كتابة الكود بلغة C كالتالي:

#include <stdio.h>
int main() {
   printf("Awesome Diagonal");
   printf("s");
   return 0;
}

يبدأ الكود بتضمين مكتبة `stdio.h` التي تحتوي على دوال الإدخال والإخراج القياسية في لغة C، ثم يعرف دالة `main` التي تعتبر نقطة البداية في تنفيذ البرنامج. يتم طباعة النص "Awesome Diagonal" باستخدام الدالة `printf`، ثم يتم طباعة الحرف "s" منفصلاً عن الجملة السابقة، ليكون الإخراج "Awesome Diagona1s".

يمكن فهم معنى الجملة بأنها تطلب طباعة النص "Awesome Diagonal" مع حرف "s" لإنشاء كلمة مقترنة تعبر عن معنى ما. وتم استخدام دالة `printf` للقيام بذلك، حيث انه بإمكانها عرض البيانات المنسقة والشكل الذي يريده المستخدم بشكل مختلف، حسبما ذكرنا سابقًا.

  • 0
نشر

1- استخدام الأمر printf

باستطاعتك استخدام الأمر printf لإخراج النص المطلوب "Awesome Diagona1s"،  وتستخدم printf لإخراج نصوص ومتغيرات مختلفة على شاشة الكمبيوتر. يمكن استخدام printf على النحو التالي:

#include <stdio.h>

int main() {
   printf("Awesome Diagona1s");
   return 0;
}

سيقوم هذا الكود بإخراج النص "Awesome Diagona1s" على شاشة الكمبيوتر.

2- استخدام الأمر puts

هناك طريقة باستخدام الأمر puts لإخراج النص "Awesome Diagona1s"، وتعمل puts بنفس الطريقة الخاصة بـ printf، يتم استخدام puts على النحو التالي:

#include <stdio.h>

int main() {
   puts("Awesome Diagona1s");
   return 0;
}

3- استخدام الأمر putchar

يتوفر الأمر putchar لإخراج النص "Awesome Diagona1s" حرفًا حرفًا، وهو عمليّ جدًا لإخراج النصوص بصورة محددة، كالتالي:

#include <stdio.h>

int main() {
   putchar('A');
   putchar('w');
   putchar('e');
   putchar('s');
   putchar('o');
   putchar('m');
   putchar('e');
   putchar(' ');
   putchar('D');
   putchar('i');
   putchar('a');
   putchar('g');
   putchar('o');
   putchar('n');
   putchar('a');
   putchar('1');
   putchar('s');
   
   return 0;
}

4- استخدام متغير

باستخدام متغير لحفظ النص "Awesome Diagona1s"، ثم إخراجه باستخدام printf. يتم استخدام المتغير كالتالي:

#include <stdio.h>

int main() {
   char myText[] = "Awesome Diagona1s";
   printf("%s", myText);
   
   return 0;
}

في المثال تم إنشاء متغير من نوع char بعنوان myText، ثم يتم تعيين النص "Awesome Diagona1s" إلى المتغير،  واستخدام printf لإخراج المتغير myText من خلال قالب النص "%s".

بتاريخ 8 دقائق مضت قال moh am:

  يتحقق معي الشرط الاولAwesome Diagona1s والثاني لا يتحقق  المشكله بال output الثاني الاول يتحقق معي

 

@moh am

أنت قمت بتعديل السؤال بعد فترة ولم يكن الكود متوفر، والمشكلة في الكود الذي قدمته هي أنه يحتوي على جملة شرطية تحتوي على شرطين متشابهين لاستدعاء النص "Awesome Diagona1s" وهما:

else if (diag1 == diag2) {

    printf("Awesome Diagona1s");

} 

else if (col1 == diag1 ) { 

    printf("Awesome Column and Diagona1");

}

بالتالي، عند إدخال الأرقام التي تجعل المعادلات متساوية، سيتم استدعاء النص "Awesome Diagona1s" فقط، ولن يتم استدعاء النص "Awesome Column and Diagona1".

لحل هذه المشكلة، يمكنك استخدام جملة شرطية جديدة تحتوي على الشرطين السابقين بشكل متفرع، مما يسمح بالحصول على الإخراجين المطلوبين على حد سواء.

لذلك، يمكنك استبدال الجملة الشرطية التي تحتوي على الشرطين المتشابهين بالشكل التالي:

else if ((diag1 == diag2) && (col1 == diag1)) { 

    printf("Awesome Column and Diagona1");

}

وبهذا يتم الحصول على الإخراجين المطلوبين عند تحقق الشرطين المتشابهين في نفس الوقت.

  • 0
نشر

مشكلتي هي انه يوجد مصفوف وطرح عليها اسئله حيث ان الشرط الاول تحقق والشرط الثاني لم يتحقق

Awesome Diagonals" will be printed because the first and second diagonals have equal sums (9).

"Awesome Column and Diagonal" will be printed because the first column and the first diagonal have equal

sums (9)

بالفعل مشكلتي ليست بامر ال printf

حيث في الكود الخاص بي عرف جميع ال vareble فالمصفوفه ولا اعلم لماذا لم يضهر ال output بشرط الثاني

  • 0
نشر
بتاريخ 1 دقيقة مضت قال moh am:

مشكلتي هي انه يوجد مصفوف وطرح عليها اسئله حيث ان الشرط الاول تحقق والشرط الثاني لم يتحقق

Awesome Diagonals" will be printed because the first and second diagonals have equal sums (9).

"Awesome Column and Diagonal" will be printed because the first column and the first diagonal have equal

sums (9)

بالفعل مشكلتي ليست بامر ال printf

حيث في الكود الخاص بي عرف جميع ال vareble فالمصفوفه ولا اعلم لماذا لم يضهر ال output بشرط الثاني

المشكلة تكمن في شرط الثاني والذي يفحص المجموعات الفرعية للصفوف ويطبع "Awesome Rows" في حالة وجود صفوف متساوية في المجموع.

ومن خلال الوصول إلى الشرط الثاني في البرنامج، فإنه يحتاج إلى تحقق من المجموعات الفرعية للأعمدة والقطرين، ولكن لم تتم معالجتها في الشرط الثاني.

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

باستخدام الشرط التالي لطباعة "Awesome Rows and Columns" عندما تتطابق المجموعات الفرعية للصفوف والأعمدة والقطرين.

else if ((row1 == row2 && row2 == row3 && row3 == col1 && col1 == col2 && col2 == col3 && col3 == diag1 && diag1 == diag2) ||       (col1 == diag1 && row1 == col1 && row2 == col2 && row3 == col3 && row1 == diag2)) {

    printf("Awesome Numbers");

} else if (row1 == row2 || row1 == row3 || row2 == row3) {

    printf("Awesome Rows");

} else if (col1 == col2 || col1 == col3 || col2 == col3) {

    printf("Awesome Columns");

} else if (diag1 == diag2) {

    printf("Awesome Diagona1s");

} else if ((row1 == col1 || row1 == col2 || row1 == col3 || row1 == diag1 || row1 == diag2 ||

        row2 == col1 || row2 == col2 || row2 == col3 || row2 == diag1 || row2 == diag2 ||

        row3 == col1 || row3 == col2 || row3 == col3 || row3 == diag1 || row3 == diag2) || 

        (col1 == diag1 && row1 != col1 && row2 != col2 && row3 != col3 && row1 != diag2)) { 

    printf("Awesome Row and Column");

} else if (col1 == diag1 ) { 

    printf("Awesome Column and Diagona1");

} 

 

  • 0
نشر

في الشرط الأخير في الكود، المتعلق بـ "Awesome Rows and Columns"، تم استخدام الشرط الخاص بـ "Awesome Diagonals" بشكل خاطئ، حيث تم إدراجه كجزء من شرط الصفوف والأعمدة والقطرين.

بالتحديد، كان الخطأ في هذه الجملة:

else if (row1 == col1 || row1 == col2 || row1 == col3 || row1 == diag1 || row1 == diag2 || row2 == col1 || row2 == col2 || row2 == col3 || row2 == diag1 || row2 == diag2 || row3 == col1 || row3 == col2 || row3 == col3 || row3 == diag1 || row3 == diag2) { printf("Awesome Rows and Columns"); }

حيث تم وضع "diag1" و "diag2" كجزء من شرط الصفوف والأعمدة والقطرين. وبالتالي، لم يتم تمييز الحالة المراد الإشارة إليها بشكل صحيح.

لحل هذه المشكلة، يجب تحريك الشرط الخاص بـ "Awesome Diagonals" إلى موضعه الصحيح، كما هو موضح في الكود التالي:

if (row1 == row2 && row2 == row3 && row3 == col1 && col1 == col2 && col2 == col3 && col3 == diag1 && diag1 == diag2) {
    printf("Awesome Numbers");
} else if (row1 == row2 || row1 == row3 || row2 == row3) {
    printf("Awesome Rows");
} else if (col1 == col2 || col1 == col3 || col2 == col3) {
    printf("Awesome Columns");
} else if (diag1 == diag2) {
    printf("Awesome Diagonals");
} else if (row1 == col1 || row1 == col2 || row1 == col3 ||
           row2 == col1 || row2 == col2 || row2 == col3 ||
           row3 == col1 || row3 == col2 || row3 == col3) {
    printf("Awesome Rows and Columns");
} else if (col1 == diag1 || col2 == diag2) {
    printf("Awesome Columns and Diagonal");
}

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

  • 0
نشر
بتاريخ 42 دقائق مضت قال moh am:

_.thumb.jpg.4f013443f780568d97cc3e80ac255126.jpg

لا اعلم ما المشكله فانه لا يطبع بشكل صحيح ربما يحدث خطا ما 

حيث انني قمت بحذف الشرط الاول تحقق الشرط الثاني 

وعند وجود الشرط الثاني يتحقق الشرط الاول 

  • 0
نشر
بتاريخ 3 دقائق مضت قال moh am:

لا اعلم ما المشكله فانه لا يطبع بشكل صحيح ربما يحدث خطا ما 

حيث انني قمت بحذف الشرط الاول تحقق الشرط الثاني 

وعند وجود الشرط الثاني يتحقق الشرط الاول 

أرجو منك مشاركة الكود بعد التعديل وأيضًا قم بالضغط على علامة الكود <> لإضافة الكود الخاص بك عند كتابة السؤال.

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...