ahmed.o.mohamed

تمرين خفيف لتحريك الجمجمة - وجبة الصباح :)

18 ردود في هذا الموضوع

السلام عليكم

 

المطلوب هو كتابة كود لطيف بالسي أو بالسي++ يطلب من المستخدم إدخال عدد حقيقي (double أو float) و يُظهر له مربع العدد المُدخل. ^_^

 

آه ! نسيت أن أخبرك أنه يُمنع استخدام الفاصلة المنقوطة (semicolon) في الكود :D

أيضا, الكود يجب أن يكون متوافقاً مع معيار C99.

 

 

 

تحياتي.

تم تعديل بواسطه Snack3r
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

أجاوبك يا Snack3r

 

ببساطه هندخل عملة الإدخال والطباعة 

 

في جملة شرطة 

 

بشكل مشابها 

if(printf ("Enter Number")>0 & printf("The Power 2 Is " + (scanf_s("%d")))*scanf_s("%d")>0 & getchar ()){}
 
ليس عندي مترجم للتجربة ده ملخص الفكرة 
تم تعديل بواسطه Snack3r
تنسيق الكود
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

فكرتك جيدة :)

 

  1. لكن لماذا استخدمت scanf_s مرتين ؟
  2. لا يُمكنك حساب مربع العدد ما دمت لم تخزنه في متغير ما.
  3. أيضاً, كان من الأولى أن تتسخدم scanf بدلا من scanf_s حتى يكون الكود قياسي.

 

بالمناسبة, لا زالت توجد العديد من الأفكار الأخرى للإجابة على السؤال :)

تم تعديل بواسطه Snack3r
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

هذا هو حلي الأول ..

#include<stdio.h>int main(double x){    if(scanf("%lf",&x)&&printf("%lf\n",x*x))    {}}

_________________

وهذا الثاني

#include<stdio.h>int main(double x){    while(scanf("%lf",&x)&&!printf("%lf\n",x*x))    {}}

متشوق لرؤية حلول مختلفة :)

تم تعديل بواسطه مصطفى 36a2
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

ده كود مكتوب بالسريع المهم إيصال الفكره الي يهمني

 

استخدام SCANF_S

 

More Secure 

 

عموما كنت انوي فقط إيصال الفكرة ..  

 

:D 

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

@SmartCode2013

تمام, ممكن نقول أنك أول واحد وصل للحل, كده ع السريع يعني :rolleyes:

 

@مطصفى

الكود بتاعك ميحترمش C99 لأن المعيار ينص على أن main إما أن تأخذ عدد صحيح و مؤشر مصفوفات أو لا تأخذ شيء :D

 

محاولاتي :

#include <math.h>#include <stdlib.h>#include <stdio.h> #define BIG_ENOUGH_FOR_DOUBLE 80 int main(void){	if(printf("Entrer nombre:\n") && printf("Le carre vaut %f\n", pow(		strtod(fgets(malloc(BIG_ENOUGH_FOR_DOUBLE), BIG_ENOUGH_FOR_DOUBLE, stdin), NULL),		2.0	))) { }}
int main(int argc, char* argv[]){	if(float i=1){		if(printf("Entrez un nombre\n")){}		if(scanf("%f",&i)){}		if(printf("Le carre vaut %f\n",i*i)){}	}}

بانتظار البقية.

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
if(float i=1)

:rolleyes:

#include<stdio.h>#include<stdlib.h>int main(int argc, char* argv[]){    while(        printf("Enter a number :p\t")&&        scanf("%s",argv[0])&&        !printf("%s^2=%lf\n",argv[0],strtod(argv[0],0)*strtod(argv[0],0))        )    {}}

:P

تم تعديل بواسطه مصطفى 36a2
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

if(double X = 1)

{

if((printf ("Enter Number : ")>0) && (scanf_s("%d",X) > 0))

{

if(printf("The Power 2 Is %d^2 = ",X*X ) )

{

}

}

}

تم تعديل بواسطه Snack3r
تنسيق الكود
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

@مصطفى

هل أنت متأكد من الكود تبعك ؟ لأن المستخدم يجب أن يُدخل العدد عن طريق سطر الأوامر كمدخلات للدالة الرئيسية و ليس مجرد إدخال طبيعي :rolleyes:

 

@SmartCode2013

الكود تبعك فيه error لأن المتغير x لم يعد مرئيا نظراً لوجود nested if :)

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

لا ال Scope Variable 

 

لل اكس متاح لكل الافيات المتداخلة 

 

لو عندي مترجم كنت ضبطهالك جربها عندي متاكد انه مافي ارور بالنسبة للأكس فوق 

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

نعم متأكد :)

فأنا أقوم باستخدام argv كحاوية فقط .. ولا يهمني محتواه السابق :D لاحظ الـscanf

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

@SmartCode2013

راجع هذا الموضوع لترجمة الكود online.

 

@مصطفى

يبقى كده, الكود لم يعد يحترم منطق البرمجة حتى :D لأنك تستخدم أشياء لغير ما أنشئت لأجله, يعني زي الواحد ياكل من مناخيرو مثلا :P

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

:D:D:D:D:D:D شو هالتشبيه يا زلمة :D

أنا من وقت دخلت SPOJ لم أعد أعرف احتراماً لأي شيء :) كل ما يعمل فهو صحيح :) بالتوفيق

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

#include <stdio.h>

#include <conio.h>

main()

{

     float n;

printf("Entrer nombre :\n");

scanf("%f",&n);

printf("%f",n*n);

getch();

}

تم تعديل بواسطه مصطفى 36a2
إضافة وسم الكود
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

أهلاً بك أخي في المنتدى ,..

يبدو أنك لم تقرأ نص المسألة جيداً

انتبه لعبارة :


نسيت أن أخبرك أنه يُمنع استخدام الفاصلة المنقوطة (semicolon) في الكود biggrin.png

وفقك الله :)

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

محاولتي

#include <iostream>using namespace std;int main(float a){    if( cout<<"Enter a Number please :)"<<endl && (cin>>a) && cout<<a*a )    {    }}
تم تعديل بواسطه أحمد عصام
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

طريقة اخري 

#include <iostream>using namespace std;int main(){   if(cout<<"Enter a number :)"<<endl)   {    for(float i ; cin>>i ; i && cout<<i*i<<endl)   {   }   }}
تم تعديل بواسطه أحمد عصام
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

انتبه مرة أخرى للسؤال p:


نسيت أن أخبرك أنه يُمنع استخدام الفاصلة المنقوطة (semicolon) في الكود biggrin.png

أيضا, الكود يجب أن يكون متوافقاً مع معيار C99.

 

الكود يجب أن يكون بـ C وليس ++C .. ويجب أن يخضع لمعايير C99

 

بالتوفيق

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

من فضلك سجل دخول لتتمكن من التعليق

ستتمكن من اضافه تعليقات بعد التسجيل



سجل دخولك الان

  • يستعرض القسم حالياً   0 members

    لا يوجد أعضاء مسجلين يشاهدون هذه الصفحة .