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

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

مغلق
بدأه BBIS في 27 نوفمبر 2004 · 5 رد · 766 مشاهدة · في الأسئلة المجابة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

part A:

write your own version of the function isalpha which is described in 8.1 in your book. the function prototype is int isAlpha(int c);

part b:

write a recursive function named firstAlpha that takes a single string as its argument and returns a pointer to the first alphabet (letter) in the string. the function prototype is: char * firstAplha (char*);

use the function written in part A to check for the letters. in addition, use recursion and pointer notation to solve this problem.

هذي محاولتي

# include<stdio.h>
# include<ctype.h>
# include<string.h>
int is_alpha (int);
char *firstalpha(char*);
int main()
{
char x[]="123kdd";
is_alpha(x);
firstalpha(x);
printf("%c ",x);
return 0; }

int is_alpha (int c)
{

if (char (c>='a' && c>='z') || (c>='A' && c>='Z'))
return 1;

else
return 0;}

char *firstalpha(char *a)
{
if (*a=='\0')
return '\0';
else
if (isalpha(*a))
return a;
else
return firstalpha(a+1);
}

*Write a function named sort_Names_In_Line that should take a line consist of words (names) separated by one blank.The function should return a new line of text contains the words in the line sorted in ascending order. The maximum number of charactersin the line is 80. Use array of pointer to char to point to the words in the line for the sorting operation. The prototype of the function is:char *sort_Names_In_Line(char*); If the line is "Moha Nader Ahmed Faten Eman"

The returned line should be "Ahmed Eman Faten Moha Nader"

*write a main function to test youre function

وهذه محاولتي

# include <stdio.h>
# include <string.h>

char *sort_Names_In_Line(char*line);
void main ()
{
char line[100];
printf ("Enter a line consists of words (names) separated by one blank:");
gets (line);
if (strlen (line)<=80)
printf ("%s",sort_Names_In_Line(line));


}
char *sort_Names_In_Line(char*line)
{
int count=0;
char nsent [100]={" "};
char *token=strtok (line," ");
char *psn[10];
psn[0]=token;
while (token!=NULL) {
count++;
token=strtok (NULL," ");
psn[count]=token;  }
char *temp;
for (int i=0;i<count;i++) {
for (int j=0;j<count;j++)
if (strcmp (psn,psn[j])>0 && i!=j)
{
temp=psn;
psn=psn[j];
psn[j]=temp;
}
}
for (i = 0; i < count; i ++)
{
strcat (nsent, psn );
strcat (nsent, " ");
}
return nsent;
}
#2

السلام عليكم

يا جماعة يا ريت تساعدوني قولوا لي شنو الأخطاء في هالبرنامجين ضروري

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

#3

هاااى عليك

بس يا ريت الاول اكتب انت عايز البرنامج دة يعمل اية بالظبط بكل التفاصيل و يا ريت تبعت الكود تانى بس بعد كتابة كومنتات علشان يسهل قراية يعنى تكتب كل حبة سطور انت قصدك تعمل بيهم اية انا بس لاحظت ان فى الكود الاول انت كاتب

if (char (c>='a' && c>='z') || (c>='A' && c>='Z'))
// chang to
if (char (c>='a' && c<='z') || (c>='A' && c<='Z'))

انا مقرتش الباقى اعمل الكومنتات علشان مافيش حد فاضى و بردة علشان توصل للحل السريع العملى بسرعة

لا اله الا الله .......................................... محمد رسول الله

#4

مشكور أخوي على الرد

البرنامج الأول مطلوب ترتيب الكلمات حسب الحروف الهجائية والبرنامج الثاني مطلوب من اليوزر إدخال String و الـ function يطلع لنا أول حرف من string

#5

ملحوظة سريعة على الدالة isAlpha .. اذا كان ما تريد هو أن تحدد ما اذا كان الcharacter الأول هو حرف، عليك أن تبعثه الى الدالة فيكون تعريفها كالتالي:

int is_alpha (int c)
{
char ch = (char)c;
if (( ch >= 'a' && ch >= 'z' ) || ( ch >= 'A' && ch >= 'Z' ))
return 1;

else
return 0;
}

وتناديها بالشكل التالي:

char x[]="a123kdd";
int i = is_alpha( (int)x[0]);

أما بالنسبة ل_firstalpha فيمكن تبسيطها الى التالي:

char *firstalpha(char *a)
{
	if ( isalpha(*a) )
  return a;
	else
  return firstalpha(++a);

}

السؤال الثاني سأتركه لأحد الزملاء يجيب عنه

#6

مشكور أخوي بس يا ريت توضح لي أكثر لأني مو فاهمة عليك

أو إذا ممكن تحط لي program بعد التصحيح

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

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

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

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

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

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