• 0
mhraja

دالة الترتيب ترتب خطأ

سؤال

int t,h=o no[50];
a=fopen(fopen("c:\\monam.txt","rb");
rewind(a);
if(a==0)
{
printf("error");
getch();
exit(1);
}
fscanf(a,"%d%s%d%d%d",&st.nu,&st.name,&st.arbic,&st.english,&st.c);
while(!feof(a)
{
st.nu==no[h];
h++
fscanf(a,"%d%s%d%d%d",&st.nu,&st.name,&st.arbic,&st.english,&st.c);
}
fclose(a);
for(int i=0;i<h;i++)
for(int j=0;j<h;j++)
if(no[j]>no[j+1])
int temp=no[j];
no[j]=no[j+1];
no[j+1]=temp;
}
for(int r=0;r<h;r++)
{
printf("\n%d",no[r]);
}
printf("\n \t to pack press 0");
scanf("%d",&t);
if(t==0)
getch();
goto w;
}

 

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

شارك هذا الرد


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

1 إجابات على هذا السؤال .

  • 0

أهلا بك أخي الكريم،

أرجو منك الاعتناء بتنسيق الشيفرة البرمجية

مشكلة البرنامج الذي أرفقته حضرتك في الأسطر التالية:

for(int i=0;i<h;i++)
for(int j=0;j<h;j++)
if(no[j]>no[j+1])
int temp=no[j];
no[j]=no[j+1];
no[j+1]=temp;

والصواب

for(int i=0;i<h;i++)
	for(int j=0;j<h;j++)
		if(no[j]>no[j+1])
		{
			int temp=no[j];
			no[j]=no[j+1];
			no[j+1]=temp;
		}

فعليك أن تضع كامل الشيفرة التي ترغب بتنفيذها عند تحقق الشرك داخل block يحددها قوسا البداية والنهاية {} وإلا فسيتم اعتبار السطر الأول فقط تابعًا للشرط وأما الباقي فلا، بل وسيتم اعتبار السطرين الآخرين في المقطع الذي اقتبسته لك بأنهما خارج حلقتي for أيضًا، ومن ثم سيجد المترجم بأن المتغير temp غير معرف في برنامجك.

على كلّ أنصحك باستخدام الأقواس دومًا، حتى لو كان لديك سطر واحد بعد if أو for 

 

بالتوفيق

1

شارك هذا الرد


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

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

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



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

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

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