الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

اختبر قدراتك في C/CPP - الحلقة الخامسة, الجزء الخامس

مغلق
بدأه Snack3r في 24 سبتمبر 2012 · 3 رد · 1,359 مشاهدة · في اختبر قداراتك
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

الحلقة الأولى.

الحلقة الثانية - الجزء الأول.

الحلقة الثانية - الجزء الثاني.

الحلقة الثانية - الجزء الثالث.

الحلقة الثانية - الجزء الرابع.

الحلقة الثانية - الجزء الخامس.

الحلقة الثانية - الجزء السادس و الأخير.

الحلقة الثالثة - الجزء الأول.

الحلقة الثالثة - الجزء الثاني.

الحلقة الثالثة - الجزء الثالث.

الحلقة الثالثة - الجزء الرابع.

الحلقة الثالثة - الجزء الخامس و الأخير.

الحلقة الرابعة - الجزء الأول.

الحلقة الرابعة - الجزء الثاني.

الحلقة الرابعة - الجزء الثالث.

الحلقة الرابعة - الجزء الرابع.

الحلقة الرابعة - الجزء الخامس.

الحلقة الرابعة - الجزء السادس.

الحلقة الرابعة - الجزء السابع.

الحلقة الرابعة - الجزء الثامن.

الحلقة الرابعة - الجزء التاسع.

الحلقة الرابعة - الجزء العاشر.

الحلقة الرابعة - الجزء الحادي عشر.

الحلقة الرابعة - الجزء الثاني عشر.

الحلقة الرابعة - الجزء الثالث عشر.

الحلقة الرابعة - الجزء الرابع عشر.

الحلقة الرابعة - الجزء الخامس عشر.

الحلقة الرابعة - الجزء السادس عشر.

الحلقة الرابعة - الجزء السابع عشر.

الحلقة الرابعة - الجزء الثامن عشر.

الحلقة الرابعة - الجزء التاسع عشر.

الحلقة الرابعة - الجزء العشرون و الأخير.

الحلقة الخامسة - الجزء الأول.

الحلقة الخامسة - الجزء الثاني.

الحلقة الخامسة - الجزء الثالث.

الحلقة الخامسة - الجزء الرابع.

مرحبا بكم إخوتي الكرام في الجزء الخامس من الحلقة الخامسة من سلسلة اختبر قدراتك, قمتُ بتقسيم الحلقة الخامسة إلى عدة أجزاء, مُرتبة حسب الصعوبة.

أجزاء هذه الحلقة ستكون خاصة بمتفرقات C/C++.

الإختبار الخامس (الجزء الخامس) :

اكتب دالة تعاودية أو تراجعية (Recursive function) تقوم بالتحقق من إدخال عدد صحيح عن طريق الكيبورد, الدالة يجب أن تستدعي نفسها إذا كانت المُدخلات خاطئة.

يجب أن تستقبل الدالة 3 وسائط :

  • الرسالة التي يجب إظهارها قبل قراءة القيمة المُدخلة. (الرسالة التي تطلب من المستخدم إدخال قيمة يجب أن تصدر من الدالة و ليس من الــ main)
  • عنوان المتغير الهدف.
  • العدد الأقصى لمحاولات الإدخال.

تُعيد الدالة 0 إذا تم إدخال قيمة صحيحة قبل أن تنتهي محاولات الإدخال و -1 في الحالة المعاكسة.

مثال :

post-219439-046507800 1348444936_thumb.p

post-219439-022262100 1348444941_thumb.p

سأضع حل السؤال بعد إنتهاء عرض المحاولات.

المرفقات
testCode1.pngtestCode2.png
1
#2

الحمد لله ...هذه محاولتي ...

جزاك الله خيرا اخي احمد

#include<cstdio>
int recursev(const char a[],char*b,int c)
{
	printf(a);
	scanf("%s",b);
	for(int i=0;b;i++)
		if(b<'0'||b>'9')
		{
			if(c)
				return  recursev(a,b,--c);
			else 
			{
				printf("Sorry __You have reach the maximum tries!\n");
				return -1;
			}
		}
	printf("Success Input For %s\n",b);
	return 0;
}
main()
{
	const char a[]="Please Enter A Value :";
	char b[10];
	int numberOfTries=5;
	recursev(a,b,numberOfTries);
	return 0;
}

بالتوفيق للجميع

#3

محاولتي :

#include <stdio.h>
#define LG_LIG 20

int main() {
    int lecture(char *, int *, int);
    int n;
    const int nessais = 5;

    if (lecture("donnez un nombre entier : ", &n, nessais) != -1)
        printf("-- merci pour %d", n);
    else
        printf("-- nombre d'essais dépassés");

    return 0;
}

int lecture(char * mes, int * p, int nmax) {
    int compte;
    char ligne [LG_LIG];
    printf("%s", mes);
    fgets(ligne, LG_LIG, stdin);
    compte = sscanf(ligne, "%d", p);
    if (!compte)
        if (--nmax)
            return (lecture("** réponse incorrecte - redonnez la : ", p, nmax));
        else
            return (-1);
    else
        return (0);
}

هذا الموضوع مغلق.

مواضيع مشابهة