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

عندي خطأ في كود, ممكن احد يقولي شنو الخطأ

مغلق
بدأه alqabtan في 31 أكتوبر 2006 · 6 رد · 652 مشاهدة · في الأسئلة المجابة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

عندي خطأ في كود, ممكن احد يقولي شنو الخطأ في c++

#include <iostream.h>
void main()
{
	int a[10],tr,i,f=0,l=0,m;
	cout<<"Enter the 10 number's \n";
	for (i=0;i<10;i++)
	cin>>a;
	cout<<"Enter the number target \n";
	cin>>tr;
	m=(f+l)/2;
	while ((tr!=a[m])&&(f<=l))
	{
		if(tr<a[m])
			l=m-l;
		else
			f=m+l;
			m=(m+l)/2;
	}
	if (tr==a[m])
		cout<<"Find \n";
	else
		cout<<"Not Find \n";
}
#2

البرامج يترجم بشكل جيد. ما الذى يقوم به لبرنامج؟ و لماذا تعتقد وجود خطأ؟

اعتقد ان عدم كتابة اقواس البلوك هى المشكلة. من تنظيمك للبرنامج اظنك تعنى

if(tr<a[m]){
			l=m-l;
		}else{
			f=m+l;
			m=(m+l)/2;
		}

اطيب التمنيات

#3

لا يعمل بعد

#include <iostream.h>
void main()
{
	int a[10],tr,i,f=0,l=0,m;
	cout<<"Enter the 10 number's \n";
	for (i=0;i<10;i++)
	cin>>a;
	cout<<"Enter the number target \n";
	cin>>tr;
	m=(f+l)/2;
	while ((tr!=a[m])&&(f<=l))
	if(tr<a[m]){
			l=m-l;
		}else{
			f=m+l;
			m=(m+l)/2;
		}

	if (tr==a[m])
		cout<<"Find \n";
	else
		cout<<"Not Find \n";
}
#4

كان خطا هو f=m+l,f=m-l تغير l الى 1

برامج يعمل ولكن يوجد خطا ماعرف اين

#include <iostream.h>
void main()
{
	int a[10],tr,i,f=0,l=0,m;
	cout<<"Enter the 10 number's \n";
	for (i=0;i<10;i++)
	cin>>a;
	cout<<"Enter the number target \n";
	cin>>tr;
	m=(f+l)/2;
	while ((tr!=a[m])&&(f<=l))
	if(tr<a[m]){
			l=m-1;
		}else{
			f=m+1;
			m=(m+l)/2;
		}

	if (tr==a[m])
		cout<<"Find \n";
	else
		cout<<"Not Find \n";
}
#5

أنا لم أجد أي سبب ليعمل البرنامج بشكل صحيح!

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

#6

و أنا لا أعرف ماذا تريد بالضبط لأساعدك!

اشرح المسأله قبل أن تضع الكود

#7

سؤال في binary search

يحب ان ان يكون بحث عن رقم يعمل بشكل صحح مثل اذ تم ادخل بحث عن رقم 51 الجواب لا يوجد علما بان رقم 51 يوجد مع ارقام

list 11,21,31,41,51,61,71,81

بحث عن رقم 51

يجب ان يكون الارقام مرتبه

متوسط الاقام هو

(1+8)/2=4.5 اذ 4 هو اقرب

اي رقم 41

رقم 51 هو اكبر من 41

ارقام ما قبل 41 غير موجد فيه 51 لان رقام مرتبه

متوسط الاقام الجديد هو (5+8)/2=6.5=6 هو رقم 61

رقم 61 هو رقم اكبر من 51

متوسط هو ليس اكبر من 61 بل اقل من 61

6-1=5 هو51 رقم 51=51

الجواب الرقم تم يوجد

ولكن الجواب خطا لا يقول غير يوجد

مجموع هو 10 في المسأله وليس 8 وهذا للعلم

هل اشرح المسأل وضح ؟

تم تعديل هذه المشاركة بواسطة alqabtan في 3 نوفمبر 2006 في 20:49

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

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