المساعد الشخصي الرقمي

مشاهدة النسخة كاملة : مشكلة في برنامج بـ C++


المجدد 2002
11-Jan-2008, 05:00 PM
بسم الله الرحمن الرحيم
الموضوع واضح من العنوان يعني فيه وجع راس للخبراء فقط (ومن عنده خبره يفيدنا) هذا برنامج في لغة C يحتاج تعديل فيه خطأ بسيط تعبت وأنا أصلح فيه البرنامج لصناعة رقم سري لكن المشكله هو عند أدخال الرقم السر صحيحه في البدايه يعتبر أيضاً باقي الأرقام صحيحه أيضاً
مثال كلمة السر (hayatech)
لو كتبة (hayatech 456h)يعتبرها صحيحه ايضاً ياليت المساعده هنا الرقم السري 1234
#include<stdio.h>
#include<conio.h>
main()
{
int k=0,i=0;
char a[10],ch,pass[5]="1234";
again: printf("please enter password:\t<Reformer 2002>\n");
do{
ch=getch();
printf("*");
a[k]=ch;
k++;
}while(ch!='\r' );
do{
if(a[i]!=pass[i])
break;
i++;
}while(i<5);
if(i==4)
printf("\n Correct\n");
else
{printf("\n error\n");
goto again;}
getch();
}تحياتي
المجدد 2002

al_fanar
11-Jan-2008, 11:27 PM
المشكله هو وجود لووب لانهائيه وأتوقع انها في هذا الجزء من الكود >>>



do{
if(a[i]!=pass[i])h

break;1
i++;1
}
while(i<5)1




حاول إعادة صياغتة بطريقة أخرى ربما يفلح معك الحل

سؤال لماذا حددت الـ bass بخمسة ارقام ؟!

al_fanar
13-Jan-2008, 12:58 AM
السلام عليكم /

عملت trace مرة أخرى للبرنامج واتضح بأن جملة if الأولى تحتاج الى شرط أخر لضمان ان المستخدم لايدخل الا اربعة احرف فقط وهذا ماذكرته في السابق بأنك لم تضع حدا لعدد الحروف المدخله بمعنى انت لم تحصرها فقط بأربع مدخلات ولذلك كانت اللوب لديك مفتوحه الى أن يضغط المستخدم enter
الى الآن لاأعرف السبب وراء وضعك للمصفوفة a عشرة عناصر ولا للمصفوفة pass خمسة عناصر والمفروض أن يكون طول المصفوفتين هو 4 (باعتبار ان الترقيم يبدأ من الصفر )
أي :
a ==> 0 1 2 3
bass ==> 1 2 3 4

وستجد تصحيح الكود باللون الأصفر >>




#include<conio.h>

main()

{

int k=0,i=0;
char a[3],ch,pass[3]="1234";
again: printf("please enter password:\t<Reformer 2002>\n");
do{
ch=getch();
printf("*");
a[k]=ch;
k++;
}while(ch!='\r' & k<4);
do{
if(a[i]!=pass[i])
break;
i++;
}while(i<4);
if(i==3)
printf("\n Correct\n");
else
{printf("\n error\n");
goto again;}
getch();
}











>> عتبي على اسم الموضوع فالمجتمع يحتوي على اعضاء أكفاء في مثل هذه الأمور وليس
فريق البرمجة فقط الذي قد يكون مشغولا وبالتالي لم تمسك لاهذا ولا هذا !

العسيم
15-Feb-2008, 04:40 AM
مااذكر اني قرأت كود بلغة السي
تخصصي سي بلس بلس
لكن ارجو من الشباب هل الكود هذا صحيح ام لا

يعني نبي نشتغل ونشوف حظنا


نحياتي