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

برنامج يحسب عدد الحروف الكبيره والصغيره والرموز في السترنق مانفذ معي مع انه بدون اخطا

مغلق
بدأه فلسفة في 28 يوليو 2003 · 3 رد · 973 مشاهدة · في الأسئلة المجابة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

هذا برنامج ترسله string ويحسب لك عدد الحروف الكبيره والصغيره والرموز

البرنامج طلع كله بدون اخطاء بس حاولت تنفيذة مانفذ؟؟؟؟

 #include

#include

void count(char [],int*,int*,int*,int*);

int main()

{

int k,m,p,e;

char string[80];

printf("Enter strnign");

gets(string);

count(string,&k,&m,&p,&e);

printf("The string is = %sn");

printf("The number kabtl=%d smaal=%d punct=%d else=%d",k,m,p,e);

return 0;

}

void count(char s1[],int *k,int *m,int *p,int *e){

int i=0;

*k=*m=*p=*e=0;

while(s1!='

#2

السلام عليكم

أخ فلسفة، برنامجك يحوي أفخاخا أكثر مما يحوي أخطاء. اليوم كانت المشكلة سهلة التحديد، لكن في المشاريع الكبرى قد يتعذر ذلك إذا لم نعود أنفسنا أسلوبا معينا في البرمجة:

يجب دائما الإنتباه إلى أولوية العوامل (جمع عامل == Operator) ، ومنه ستلاحظ أن العامل ++ له أسبقية على *.

وأظن أن هذا كان جوهر المشكلة التي اعترضت برنامجك.

*K++ <> (*K)++

*K++ تعني أننا نؤشر على الخانة الذاكرية الموالية، وأننا لم نجري أي تعديل عليها

(*K)++ تعني أننا نزيد وحدة واحدة لمحتوى الخانة المؤشرة، ولكن مؤشرنا لا يحول موقعه.

من هذا سنقوم بتعديل الأسطر: 20، 22، 24 و 26

هذا صميم موضوعنا، لكن لو تجربه فإنه مازال لا يعمل، لماذا؟

ببساطة، لأنن أوقفنا عملية العد عند أول فراغ (space)، ولكن مثالنا يستلزم التوقف عند نهاية الجملة، إذن شرط الحلقة while ينبغي أن يتوقف عند وصوله إلى البايت اللاغي (NULL BYTE == '

#3

والله مدري وش اقولك يا الغالي من جد نبهتني لنقطة خطيره

يعطيك الف الف عافيه يا الغالي من جد نبهتني لشغله ماكانت على بالي :)

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

#4

العفو :)

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

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

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…