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

נושא: שאלה שאני לא מצליח לפתור - עזרה C

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

הצטרף / הצטרפה: 30 January 2005
מדינה: Israel
משתמש: מנותק/ת
הודעות: 197
נשלח בתאריך: 18 March 2006 בשעה 20:12 | IP רשוּם
ציטוט snoop

כתוב תוכנית הקולטת 10 מספרים כלשהם למערך A[11] בעשרת המקומות הראשונים.

על התוכנית להפריד בין חמשת המספרים הראשונים לחמשת המספרים האחרונים תוך כדי הזזתם מקום אחד ימינה ב -A[5] שהתפנה יש לאחסן את המספר אפס.

 

הדפס את המערך לפני ההזזה ולאחריה.

היינה מה שכתבתי:
#include<stdio.h>
#define size 11
typedef int arr_type[size];
void kelet(arr_type a);
void pelet(arr_type a);
void move(arr_type a);
void main()
{
     arr_type a;
     kelet(a);
     pelet(a);
     move(a);
     a[5]=0;
     pelet(a);
}
void kelet(arr_type a)
{
     int i;
     for(i=0;i<size-1;i++)
     {
       printf("Please Enter a number: ");
       scanf("%d",&a);
     }
}
void move(arr_type a)
{
     int i;
     for(i=5;i<size;i++)
     {
           a[size]=a ;           ;           ;    
      
     }
}
void pelet(arr_type a)  
{
     int i;
    
     if(a[5]==0)
     for(i=0;i<size;i++)
     printf("%d \t",a);
     else
     for(i=0;i<size-1;i++)
       printf("%d \t",a);
      
       printf("\n");
      
       system("Pause");
}      
            

גרמתי למספרים לזוז ימינה אבל המספר במקום 5 במערך לא זז אלה הוא נמחק ובמקום ה11 בעמרך את רואה מספר"זבל" איך לתקן?

 

תודה לעוזרים1!!

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

הצטרף / הצטרפה: 30 January 2005
מדינה: Israel
משתמש: מנותק/ת
הודעות: 197
נשלח בתאריך: 18 March 2006 בשעה 21:02 | IP רשוּם
ציטוט snoop

אני לא מצליח לעתיק את זה כמו שצריך אז היינה העלתי אותו :

http://www.megaupload.com/?d=AWG40ZCL

 

תורידו משם את הקוד.

תודה לעוזרים!

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


הצטרף / הצטרפה: 01 October 2003
משתמש: אונליין
הודעות: 12647
נשלח בתאריך: 25 March 2006 בשעה 06:01 | IP רשוּם
ציטוט iTK98se

איי איי, צריך להעניש את מי שלימד אותך C
לא משתמשים ב
קוד:

void main()

main מחוייב להחזיר integer חזרה למערכת
גם אם אתה לא משתמש ב return בסוף הפונקציה.
זה דיי תלוי מערכת, ורוב הסיכויים שבחלונות
המהדר לא יעיר לך על זה, אבל מערכות שונות
כגון לינוקס, זה לא יעבור בשתיקה, תחל להשתמש
בתחביר הנכון. (אני יודע שזה גם מופיע ככה
בספרים, וגם אותם, צריך להעניש קשות)

עכשיו לבעיה שלך, בוא נתחיל בצורת כתיבה
נאותה, יותר קל לקרוא קוד שהוא מוסכמה:

קוד:

#include<stdio.h>

#define SIZE 11 // I changed size to SIZE

typedef int arr_type[SIZE];

void kelet(arr_type a);
void pelet(arr_type a);
void move(arr_type a);

// I Removed void, blahhhh

main()
{
     arr_type a;

     kelet(a);
     pelet(a);
     move(a);

     a[4]=0; // why?

     pelet(a);
}

void kelet(arr_type a)
{
     int i;
     for(i=0;i<SIZE-1;i++) // a[9] last one
     {
       printf("Please Enter a number: ");
       scanf("%d",&a);
     }

     // Notice, a[10] and a[11] are left without getting values, these
     // variables will have junk memory in them.
}

void move(arr_type a)
{
     int i;
     for(i=SIZE;i>0;i--)   // changed the sign < to >
         &nbs p; a=a[i-1];    // starting from a[11], a[1] last (will get the
         &nbs p;         &nbs p;       //   value of a[0], a[0] is   left un-touched       &n bsp;   $

}

void pelet(arr_type a)
{
     int i;

     if(a[5]==0)
     for(i=0;i<SIZE;i++)
     printf("%d - %i \t",a, i); // here you're displaying 11 variables,
         &nbs p;         &nbs p;         &nbs p;     // the 10th is junked for the first run

     else
     for(i=0;i<SIZE-1;i++)
       printf("%d \t",a);

       printf("\n"); // didn't understand why you're using if...

    // removed the system call.
}



תעבור על ההערות לאורך הקוד.

הערה, יש מצב שהקוד נשבר (בגלל הזולוציה), ושורות
ירדו למטה. תקן לפי הצורך.

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


הצטרף / הצטרפה: 01 October 2003
משתמש: אונליין
הודעות: 12647
נשלח בתאריך: 25 March 2006 בשעה 06:06 | IP רשוּם
ציטוט iTK98se

עכשיו גם שמתי לב שיש פילטר לאתר לתווים מסויימים...

הקוד זמין גם כן כאן:
http://pastebin.com/621165
חזרה לתחילת העמוד הצג את כרטיס החבר של iTK98se חפש הודעות אחרות של iTK98se בקר בדף הבית של iTK98se
 
אבידור
אורח
אורח


הצטרף / הצטרפה: 01 October 2003
משתמש: אונליין
הודעות: 12647
נשלח בתאריך: 29 March 2006 בשעה 20:12 | IP רשוּם
ציטוט אבידור

     // Notice, a[10] and a[11] are left without getting values, these
     // variables will have junk memory in them.
המערך a[11]
אפשר לגשת אליו מ 0 עד 10. רק a[10] לא משומש והוא זבל, אך a[11] יהיה טעות.   

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


הצטרף / הצטרפה: 04 July 2005
מדינה: Israel
משתמש: מנותק/ת
הודעות: 63
נשלח בתאריך: 30 March 2006 בשעה 16:30 | IP רשוּם
ציטוט iTK98

צודק,
קוד:

a[11]

אכן טעות, והאיבר האחרון הינו
קוד:

a[10]


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

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

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

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