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

دالة بسيطة تحتاج تصحيح - في While -

بدأه cccv في 15 مايو 2009 · 2 رد · 381 مشاهدة · في الأسئلة المجابة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

بســم الله الـرحمــن الرحيــم

السلام عليكــم ورحمـة الله وبركاتــه

موضوعي هادا جاء بعد طلب تصحيح برنامج كبير قليلا فقررت تقسيمه الى دوال ليسهل تصحيح الاخطاء

الخطا في الكود التالي

#include<stdio.h>
	 int nf;
	 char rep='o';
	 void main()
	 {

	 while (rep =='o')
		 { printf ("entrez le numero de reference de medicament \n ");
		   scanf ("%d",&nf);
		   printf ("insersion \n");

		   printf ("il y a un autre medicament o/n? \n");
		   scanf("%c",rep);
	 }	}

،،

يظهر لي عند التشغيل ما يلي

entrez le numero de reference de medicament \n

il y a un autre medicament o/n?

entrez le numero de reference de medicament

تلاحظون ان الدالة تتكرر من طرف while

لكن المشكل انها تتجاهل التعليمة التالية

scanf("%c",rep);

فتفترض ان المتغير يحمل o

دون ادخال اجابة المستخدم ...... اتمنى فهمتو المشكل ادا لا رح افسر اكتر

و مشكورين مسبقا اخوتي

السلام عليكــم ورحمـة الله وبركاتــه ،،

#2

السلام عليكم

المشكله فى السطر الأخير scanf

يمكنك حل المشكله بأكثر من طريقه

أبسطهم الموجوده فى الكود الآتى

#include<stdio.h>
	  int nf;
	  char rep='o';
	  void main()
	  {

	  while (rep =='o')
		  { printf ("entrez le numero de reference de medicament \n ");
			scanf ("%d",&nf);
			printf ("insersion \n");

			printf ("il y a un autre medicament o/n? \n");
			scanf("%s",&rep);
	  }	}

وهناك طريقه أخرى بتكرار جملة scanf

فى أمان الله

تم تعديل هذه المشاركة بواسطة amin_mu123 في 15 مايو 2009 في 17:59

اللهم صل على سيدنا محمد وعلى آله وصحبه وسلم

#3
#include<stdio.h>
int nf;
char rep='o';
main()
{

while (rep =='o')
	{ 
	  printf ("entrez le numero de reference de medicament \n ");
	  scanf ("%d",&nf);
	  printf ("insersion \n");
	  printf ("il y a un autre medicament o/n? \n");
	  scanf("%c",rep);
	}   
  return 0;
 }

أظن أن المشكلة هو جعل الدالة الرئيسية لا ترجع أي قيمة إلى النظام في المترجمات الحديثة تفرض عليك جعل الدالة main ترجع قيمة ،0 يعني إنتهاء البرنامج من دون مشاكل .

''‏اللهم إني أسالك إيمانا دائما وأسألك قلبا خاشعا وأسألك علما ‏نافعا وأسألك يقينا صادقا وأسألك دينا قيما وأسألك العافية من كل ‏بلية''

'‏اللهم أغفر للمؤمنين و المؤمنات و المسلمين و المسلمات الأحياء ‏منهم و الأموات'

www.it-scoop.com

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