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

سؤال يتعلق بالمؤشرات ومصفوفو سلاسل

بدأه حامي الحمى في 3 مارس 2009 · 4 رد · 440 مشاهدة · في الأسئلة المجابة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

اخواني الكرام

حتى الآن لم اتقن المؤشرات خاصة مع السلاسسل الحرفية

لدي سؤال كالتالي:

اكتب برنامج الذي فيه مصفوفة احادية الابعاد باسم strings بحجم N مؤشرات لسلسلة حرفية (N ثابت).

على البرنامج ان يسمح للمستخدم ان يدخل N سلاسل حرفية ويقوم بحفظهن بالمصفوفة الاحادية الأبعاد على التوالي.

على البرنامج ان يفحص بواسطة دالة "استدعاء ذاتي (Recursion) هل هناك علاقة تصاعدية بين احجام السلاسل الحرفية المدخلة في المصفوفة وطباعة رسالة ملائمة.

مثال لتشغيل البرنامج (على فرض ان N=4 )

مثال 1:

Enter 4 strings:

Final

Homework

At

Last

There is no growing sequence between the strings

مثال 2:

Enter 4 strings:

now

Here

string

growing

There is a growing sequence between the strings

اول خطوة هي انني احاول ادخال السلاسل الحرفية لكن يظهر لي خطأ ولا يقوم باللازم

هذا ما كتبته

  1.  
  2. #include <stdio.h>
  3. #include <string.h>
  4. #define N 4
  5.  
  6. void main()
  7. {
  8. char *strings[N];
  9. int i;
  10.  
  11. printf("Enter %d strings",N);
  12.  
  13. for (i=0;i<N;i++)
  14. scanf("%s",strings);
  15.  
  16. for (i=0;i<N;i++)
  17. printf("%s n",strings[i]);
  18.  
  19. }
  20.  
  21.  
  22.  

ما هي المشكلة في الكود كي يقوم بادخال السلاسل الحرفية الى المصفوفة ؟

بارك الله فيكم

تم تعديل هذه المشاركة بواسطة حامي الحمى في 3 مارس 2009 في 22:22

تعب الجسد

ونعيم الروح

جسد يمشي فوق الأرض

وروح ترفرف حول العرش

#2

السلام عليكم

لقد قمت بكتابة هذا الكود بحمد الله

وهاكم اياه

  1.  
  2. #include <stdio.h>
  3. #include <string.h>
  4. #include <stdlib.h>
  5. #define N 4
  6.  
  7. void main()
  8. {
  9. char *strings[N], tmp[50];
  10. int i;
  11.  
  12. printf("Enter %d stringsn",N);
  13.  
  14. for(i=0;i<N;i++)
  15. {
  16. gets(tmp);
  17. strings[i]=(char*)malloc((strlen(tmp))*sizeof(char));
  18. strcpy(strings[i],tmp);
  19. }
  20.  
  21.  
  22. for(i=0;i<N;i++)
  23. {
  24. printf("%sn", strings[i]);
  25. }
  26. }
  27.  

بوركتم

تعب الجسد

ونعيم الروح

جسد يمشي فوق الأرض

وروح ترفرف حول العرش

#3

السلام عليكم

اخواني واجهتني مشكلة

يا ريت حد يقولي كيف ممكن اعالجها

هذا الكود لكنه كل الوقت يطبعلي انه في تلائم

جربوه وخبروني بالخطأ بارك الله فيكم

  1.  
  2. #include <stdio.h>
  3. #include <string.h>
  4. #include <stdlib.h>
  5. #define N 4
  6.  
  7.  
  8. int CheckGrowing(char* string[],int);
  9.  
  10. void main()
  11. {
  12. char *strings[N], tmp[50];
  13. int i, flg;
  14.  
  15. printf("Enter %d stringsn",N);
  16.  
  17. for(i=0;i<N;i++)
  18. {
  19. gets(tmp);
  20. strings[i]=(char*)malloc((strlen(tmp))*sizeof(char));
  21. strcpy(strings[i],tmp);
  22. }
  23.  
  24. flg=CheckGrowing(strings,0);
  25.  
  26. if (flg)
  27. printf("There is a growing sequence between the stringsn");
  28. else
  29. printf("There is no growing sequence between the stringsn");
  30. }
  31.  
  32.  
  33. int CheckGrowing(char* string[N],int a)
  34. {
  35. if(a<(N))
  36. {
  37. while((CheckGrowing(string,a+1))&&(strcmp(string[a],string[a+1])<0))
  38. a++;
  39.  
  40. return 1;
  41.  
  42.  
  43. }
  44. else
  45. return 0;
  46. }
  47.  

تعب الجسد

ونعيم الروح

جسد يمشي فوق الأرض

وروح ترفرف حول العرش

#4

السلام عليكم

يا اخوان ما في مساعدة

باقي شيء بسيط وللآن ما عرفت ايش السبب بارجاع الدالة قيمة خاطئة !!!

ارجو المساعدة وبارك الله فيكم :)

تعب الجسد

ونعيم الروح

جسد يمشي فوق الأرض

وروح ترفرف حول العرش

#5

السلام عليكم

بارك الله فيكم

الحمد لله قمت بحله وعرفت المشكلة

جزيتم خيرا

تعب الجسد

ونعيم الروح

جسد يمشي فوق الأرض

وروح ترفرف حول العرش

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