נושאים פעיליםנושאים פעילים  הצגת רשימה של חברי הפורוםרשימת משתמשים  חיפוש בפורוםחיפוש  עזרהעזרה
  הרשמההרשמה  התחברותהתחברות RSS עדכונים
תיכנות
RSS UnderWarrior Forums : RSS תיכנות
נושא

נושא: בעיה, שפת c. (בעיה פשוטה יחסית ומתחילה.)

שליחת תגובהשליחת נושא חדש
כותב
הודעה << נושא קודם | נושא הבא >>
יוסי
אורח
אורח


הצטרף / הצטרפה: 01 October 2003
משתמש: אונליין
הודעות: 12647
נשלח בתאריך: 12 November 2005 בשעה 17:49 | IP רשוּם
ציטוט יוסי

אני לומד c.. כמו שוודאי הבנתם מהכותרת.

נתנו לי תרגיל, להדפיס מחרוזת בסדר הפוך בלי שימוש במצביעים.

כלומר... השימוש נעשה רק במערכים חד מימדיים ולולאות, בלי פונקציות בלי מצביעים ודברים דומים.

אני לא הצלחתי בתרגיל

תוכלו לכתוב לי את אותו פתרון של תרגיל זה?

בתודה, יוסי.

חזרה לתחילת העמוד הצג את כרטיס החבר של יוסי חפש הודעות אחרות של יוסי בקר בדף הבית של יוסי
 
prgrmr
משתמש מתחיל
משתמש מתחיל


הצטרף / הצטרפה: 18 August 2005
מדינה: Israel
משתמש: מנותק/ת
הודעות: 16
נשלח בתאריך: 12 November 2005 בשעה 18:41 | IP רשוּם
ציטוט prgrmr

פשוט תרוץ הפוך
חזרה לתחילת העמוד הצג את כרטיס החבר של prgrmr חפש הודעות אחרות של prgrmr
 
pitbull
משתמש חבר
משתמש חבר
סמל אישי

הצטרף / הצטרפה: 14 May 2005
משתמש: מנותק/ת
הודעות: 209
נשלח בתאריך: 12 November 2005 בשעה 21:53 | IP רשוּם
ציטוט pitbull

לדוגמא
קוד:

st[10] = "abcd"

אז כדי להדפיס את המחרוזת בצורה הפוכה קודם כל צריכים לדעת את אורך המחרוזת
קוד:

length = strlen(st);

אחר כך פשוט עושים לולאה מהסוף להתחלה שכל ריצה מדפיסה תו אחד עד התו הראשון.
קוד:

for(i=length; i>=0; i--)
printf("%c",st);

חזרה לתחילת העמוד הצג את כרטיס החבר של pitbull חפש הודעות אחרות של pitbull
 
אבידור
משתמש חבר
משתמש חבר
סמל אישי

הצטרף / הצטרפה: 11 October 2005
מדינה: Israel
משתמש: מנותק/ת
הודעות: 162
נשלח בתאריך: 13 November 2005 בשעה 07:19 | IP רשוּם
ציטוט אבידור

לדעתי הוא הסביר מצויין... לפונקציה STRLEN צריך את הספריה
string.h
אם אתה עדיין רוצה את התוכנית השלמה / הפונקציה תגיד...
חזרה לתחילת העמוד הצג את כרטיס החבר של אבידור חפש הודעות אחרות של אבידור
 
SDX
משתמש חבר
משתמש חבר
סמל אישי

הצטרף / הצטרפה: 26 September 2005
משתמש: מנותק/ת
הודעות: 106
נשלח בתאריך: 13 November 2005 בשעה 12:35 | IP רשוּם
ציטוט SDX

אבידור כתב:
לדעתי הוא הסביר מצויין... לפונקציה STRLEN צריך את הספריה
string.h
אם אתה עדיין רוצה את התוכנית השלמה / הפונקציה תגיד...

???????
הוא נתן לו את התוכנית השלמה


__________________
Smoke weed evryday
~-===-~

חזרה לתחילת העמוד הצג את כרטיס החבר של SDX חפש הודעות אחרות של SDX
 
SBD
פורומיסט על
פורומיסט על
סמל אישי

הצטרף / הצטרפה: 13 January 2005
מדינה: Israel
משתמש: מנותק/ת
הודעות: 1194
נשלח בתאריך: 13 November 2005 בשעה 15:10 | IP רשוּם
ציטוט SBD

הוא נתן לו קטע קוד, נכון שאם זה השאר כבר גמור, אבל בכל זאת זה לא נקרא תוכנית שלמה :)

__________________
~ Nobody Is Perfect, I'm Nobody ~
פורומים
חזרה לתחילת העמוד הצג את כרטיס החבר של SBD חפש הודעות אחרות של SBD בקר בדף הבית של SBD
 
יוסי
אורח
אורח


הצטרף / הצטרפה: 01 October 2003
משתמש: אונליין
הודעות: 12647
נשלח בתאריך: 13 November 2005 בשעה 16:52 | IP רשוּם
ציטוט יוסי

תודה :)

הממ.. אמנם זה קטע קוד, אבל זה כמו תכנית שלמה..

לא נורא, העיקר שהבנתי.

 

חזרה לתחילת העמוד הצג את כרטיס החבר של יוסי חפש הודעות אחרות של יוסי בקר בדף הבית של יוסי
 
prgrmr
משתמש מתחיל
משתמש מתחיל


הצטרף / הצטרפה: 18 August 2005
מדינה: Israel
משתמש: מנותק/ת
הודעות: 16
נשלח בתאריך: 13 November 2005 בשעה 18:40 | IP רשוּם
ציטוט prgrmr

pitbull כתב:
לדוגמא
קוד:

st[10] = "abcd"

אז כדי להדפיס את המחרוזת בצורה הפוכה קודם כל צריכים לדעת את אורך המחרוזת
קוד:

length = strlen(st);

אחר כך פשוט עושים לולאה מהסוף להתחלה שכל ריצה מדפיסה תו אחד עד התו הראשון.
קוד:

for(i=length; i>=0; i--)
printf("%c",st);


היית יכול לקצר את זה.

קוד:
for(i=strlen(st); i>=0; --i)

חזרה לתחילת העמוד הצג את כרטיס החבר של prgrmr חפש הודעות אחרות של prgrmr
 
Alias
משתמש חבר
משתמש חבר
סמל אישי

הצטרף / הצטרפה: 13 January 2005
משתמש: מנותק/ת
הודעות: 344
נשלח בתאריך: 13 November 2005 בשעה 18:55 | IP רשוּם
ציטוט Alias

אבל מבחינת יעילות עדיף כמו פיטבול. אחרת בכל סיבוב של הלולאה האורך יחושב שוב...
חזרה לתחילת העמוד הצג את כרטיס החבר של Alias חפש הודעות אחרות של Alias בקר בדף הבית של Alias
 
אורח
אורח
אורח


הצטרף / הצטרפה: 01 October 2003
משתמש: אונליין
הודעות: 12647
נשלח בתאריך: 13 November 2005 בשעה 19:14 | IP רשוּם
ציטוט אורח

מה פתאום.

קוד:
for(i=0;i>=0;i--)


האם בכל סיבוב של הלולאה המונה יתאפס שוב?

לעומת זאת אני רואה המון אנשים שכותבים לולאת FOR בסגנון הזה:

קוד:
for(i=0;i<strlen(str);i++)

חזרה לתחילת העמוד הצג את כרטיס החבר של אורח חפש הודעות אחרות של אורח בקר בדף הבית של אורח
 
prgrmr
משתמש מתחיל
משתמש מתחיל


הצטרף / הצטרפה: 18 August 2005
מדינה: Israel
משתמש: מנותק/ת
הודעות: 16
נשלח בתאריך: 13 November 2005 בשעה 19:23 | IP רשוּם
ציטוט prgrmr

ד"א אם כבר אז עדיף לעשות:
i++
ולא:
++i
חזרה לתחילת העמוד הצג את כרטיס החבר של prgrmr חפש הודעות אחרות של prgrmr
 
אבידור
משתמש חבר
משתמש חבר
סמל אישי

הצטרף / הצטרפה: 11 October 2005
מדינה: Israel
משתמש: מנותק/ת
הודעות: 162
נשלח בתאריך: 13 November 2005 בשעה 20:15 | IP רשוּם
ציטוט אבידור

כמה שאני מנסה להבין, אני לא מצליח להבין מה ההבדל?!
חזרה לתחילת העמוד הצג את כרטיס החבר של אבידור חפש הודעות אחרות של אבידור
 
prgrmr
משתמש מתחיל
משתמש מתחיל


הצטרף / הצטרפה: 18 August 2005
מדינה: Israel
משתמש: מנותק/ת
הודעות: 16
נשלח בתאריך: 13 November 2005 בשעה 20:40 | IP רשוּם
ציטוט prgrmr

כי כשאתה עושה Pre אז הוא פשוט מקדם.
וכשאתה עושה post אז נוצר עותק בזיכרון, דבר שגוזל זמן...
חזרה לתחילת העמוד הצג את כרטיס החבר של prgrmr חפש הודעות אחרות של prgrmr
 
Inj3ction
משתמש חבר
משתמש חבר
סמל אישי

הצטרף / הצטרפה: 09 October 2005
מדינה: Israel
משתמש: מנותק/ת
הודעות: 149
נשלח בתאריך: 13 November 2005 בשעה 21:58 | IP רשוּם
ציטוט Inj3ction

אז זה תמיד עדיף יותר לא?
חזרה לתחילת העמוד הצג את כרטיס החבר של Inj3ction חפש הודעות אחרות של Inj3ction
 
prgrmr
משתמש מתחיל
משתמש מתחיל


הצטרף / הצטרפה: 18 August 2005
מדינה: Israel
משתמש: מנותק/ת
הודעות: 16
נשלח בתאריך: 14 November 2005 בשעה 16:30 | IP רשוּם
ציטוט prgrmr

כן זה עדיף אלא אם כן אין בררה...
חזרה לתחילת העמוד הצג את כרטיס החבר של prgrmr חפש הודעות אחרות של prgrmr
 
יוסי
אורח
אורח


הצטרף / הצטרפה: 01 October 2003
משתמש: אונליין
הודעות: 12647
נשלח בתאריך: 14 November 2005 בשעה 17:28 | IP רשוּם
ציטוט יוסי

הבנתי, תודה.

חזרה לתחילת העמוד הצג את כרטיס החבר של יוסי חפש הודעות אחרות של יוסי בקר בדף הבית של יוסי
 
יוסי
אורח
אורח


הצטרף / הצטרפה: 01 October 2003
משתמש: אונליין
הודעות: 12647
נשלח בתאריך: 14 November 2005 בשעה 17:55 | IP רשוּם
ציטוט יוסי

קוד:
#include <stdio.h>
#include <string.h>
void main()
{

char st[10];
int i;


gets(st);

for(i=strlen(st) ; i>=0 ; --i){
printf("%c",st);

}
printf("\n");
}

 

זה מה שכתבתי.. סגנון קצתשונה משלכם, לא עובד לי... למה?

חזרה לתחילת העמוד הצג את כרטיס החבר של יוסי חפש הודעות אחרות של יוסי בקר בדף הבית של יוסי
 
shoshan
מנהל האתר
מנהל האתר
סמל אישי

הצטרף / הצטרפה: 16 July 2005
מדינה: Israel
משתמש: מנותק/ת
הודעות: 4637
נשלח בתאריך: 14 November 2005 בשעה 18:43 | IP רשוּם
ציטוט shoshan

לפי דעתי, זה אמור להיות strlen(st)-1...סתם "ניחוש" פרוע...
חזרה לתחילת העמוד הצג את כרטיס החבר של shoshan חפש הודעות אחרות של shoshan בקר בדף הבית של shoshan
 
יוסי
אורח
אורח


הצטרף / הצטרפה: 01 October 2003
משתמש: אונליין
הודעות: 12647
נשלח בתאריך: 14 November 2005 בשעה 18:48 | IP רשוּם
ציטוט יוסי

זה לא קשור, הבעיה היא ב- gets...

מה לא היה  טוב בקוד?

חזרה לתחילת העמוד הצג את כרטיס החבר של יוסי חפש הודעות אחרות של יוסי בקר בדף הבית של יוסי
 
יוסי
אורח
אורח


הצטרף / הצטרפה: 01 October 2003
משתמש: אונליין
הודעות: 12647
נשלח בתאריך: 14 November 2005 בשעה 18:57 | IP רשוּם
ציטוט יוסי

לא עובד, במקום לרשום את הלולאה בסדר הפוך הוא רושם tttttt
חזרה לתחילת העמוד הצג את כרטיס החבר של יוסי חפש הודעות אחרות של יוסי בקר בדף הבית של יוסי
 
prgrmr
משתמש מתחיל
משתמש מתחיל


הצטרף / הצטרפה: 18 August 2005
מדינה: Israel
משתמש: מנותק/ת
הודעות: 16
נשלח בתאריך: 14 November 2005 בשעה 19:02 | IP רשוּם
ציטוט prgrmr

כי בהדפסה ביקשת להדפיס את כל המחרוזת ולא תא אחד
חזרה לתחילת העמוד הצג את כרטיס החבר של prgrmr חפש הודעות אחרות של prgrmr
 
יוס
אורח
אורח


הצטרף / הצטרפה: 01 October 2003
משתמש: אונליין
הודעות: 12647
נשלח בתאריך: 14 November 2005 בשעה 19:08 | IP רשוּם
ציטוט יוס

צודק, ניסיתי לשנות את כל ה printf ל puts..

לא עובד, מדפיס את המחרוזת הרגילה..

חזרה לתחילת העמוד הצג את כרטיס החבר של יוס חפש הודעות אחרות של יוס בקר בדף הבית של יוס
 
אבידור
משתמש חבר
משתמש חבר
סמל אישי

הצטרף / הצטרפה: 11 October 2005
מדינה: Israel
משתמש: מנותק/ת
הודעות: 162
נשלח בתאריך: 14 November 2005 בשעה 21:21 | IP רשוּם
ציטוט אבידור

תגידו מה אתם טמבלים?
אתם מדפיסים את האות הראשונה כל הזמן!
איפה נעשה שימוש ב I?
קוד:

for(i=strlen(st) ; i>=0 ; --i){
printf("%c",st);

}

לא נעשה.
הפקודה המתוקנת:
עריכה:
מכיוון שאי אפשר לכתוב '[' ו ']' ובינהם משהוא, הפקודה המתוקנת היא:
קוד:

printf("%c",sta);

את ה a תחליפו ב "[ i ]" בלי רווחים.
ולמי שעדיין לא הבין, אתם צריכים בכל לולאה לגשת לתא ה I במחרוזת ST.
חזרה לתחילת העמוד הצג את כרטיס החבר של אבידור חפש הודעות אחרות של אבידור
 
יוסי
אורח
אורח


הצטרף / הצטרפה: 01 October 2003
משתמש: אונליין
הודעות: 12647
נשלח בתאריך: 15 November 2005 בשעה 16:00 | IP רשוּם
ציטוט יוסי

תודות לעזרה של כולכם, הצלחתי

ובזכות אבידור שתיקן אותי

 

#include <stdio.h>
#include <string.h>
void main()
{

char st[10];
int i;


gets(st);

for(i=strlen(st) ; i>=0 ; --i){
printf("%c",st);

}
printf("\n");
}

חזרה לתחילת העמוד הצג את כרטיס החבר של יוסי חפש הודעות אחרות של יוסי בקר בדף הבית של יוסי
 
Fate
פורומיסט על
פורומיסט על
סמל אישי

הצטרף / הצטרפה: 25 October 2005
משתמש: מנותק/ת
הודעות: 571
נשלח בתאריך: 18 November 2005 בשעה 19:06 | IP רשוּם
ציטוט Fate

סתם כי משעמם לי:
קוד:

for    (i=strlen(gets(st))-1;((i>=0)&&(0<printf("%c", st[ i ]));--i);

מואהאהאהאה......
חזרה לתחילת העמוד הצג את כרטיס החבר של Fate חפש הודעות אחרות של Fate
 
אבידור
משתמש חבר
משתמש חבר
סמל אישי

הצטרף / הצטרפה: 11 October 2005
מדינה: Israel
משתמש: מנותק/ת
הודעות: 162
נשלח בתאריך: 18 November 2005 בשעה 22:14 | IP רשוּם
ציטוט אבידור

מניאק חח...
קיצר את כל התוכנית לשורה אחת!
חזרה לתחילת העמוד הצג את כרטיס החבר של אבידור חפש הודעות אחרות של אבידור
 
Inj3ction
משתמש חבר
משתמש חבר
סמל אישי

הצטרף / הצטרפה: 09 October 2005
מדינה: Israel
משתמש: מנותק/ת
הודעות: 149
נשלח בתאריך: 19 November 2005 בשעה 01:34 | IP רשוּם
ציטוט Inj3ction

חחחחחחחח קרעת אותי יא סוסססססססס
מניאק איך הצלחת?!?!?!?#@$@#$ חחחחחחח
חזרה לתחילת העמוד הצג את כרטיס החבר של Inj3ction חפש הודעות אחרות של Inj3ction
 
CoNfideNce
משתמש מתחיל
משתמש מתחיל


הצטרף / הצטרפה: 10 September 2005
משתמש: מנותק/ת
הודעות: 25
נשלח בתאריך: 19 November 2005 בשעה 10:51 | IP רשוּם
ציטוט CoNfideNce

חחחח פייט מגניב :D

__________________
CoNfi ;)
חזרה לתחילת העמוד הצג את כרטיס החבר של CoNfideNce חפש הודעות אחרות של CoNfideNce
 
יוסי
אורח
אורח


הצטרף / הצטרפה: 01 October 2003
משתמש: אונליין
הודעות: 12647
נשלח בתאריך: 20 November 2005 בשעה 19:05 | IP רשוּם
ציטוט יוסי

=)
חזרה לתחילת העמוד הצג את כרטיס החבר של יוסי חפש הודעות אחרות של יוסי בקר בדף הבית של יוסי
 

אם ברצונך להגיב לנושא זה עליך קודם להתחבר
אם אינך רשום/ה כבר עליך להרשם

  שליחת תגובהשליחת נושא חדש
גרסת הדפסה גרסת הדפסה

קפיצה לפורום
אינך יכול/ה לשלוח נושאים חדשים בפורום זה
אינך יכול/ה להגיב לנושאים בפורום זה
אינך יכול/ה למחוק את הודעותיך ותגוביך בפורום זה
אינך יכול/ה לערוך את הודעותיך ותגובותיך בפורום זה
אינך יכול/ה לצור סקרים בפורום זה
אינך יכול/ה להצביע בסקרים בפורום זה