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

נושא: שלום אני זקוק לעזרה בשאלה בשפת C

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


הצטרף / הצטרפה: 15 December 2011
משתמש: מנותק/ת
הודעות: 2
נשלח בתאריך: 15 December 2011 בשעה 22:51 | IP רשוּם
ציטוט tubleron

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

נגדיר מערך "ממוין פירמידה", כמערך שאיבריו, כולם שונים זה
מזה, מסודרים כך שהערך הקטן ביותר הוא הראשון במערך, השני
בגודלו הוא האחרון, השלישי בגודלו הוא השני במערך, הרביעי
בגודלו הוא הלפני אחרון, וכך הלאה, הערכים הולכים וגדלים
לסירוגין משני צידיו. יוצא שחציו השמאלי של המערך מהווה
סדרת ערכים עולה (כל איבר גדול מקודמו), חציו הימני מהווה
סדרת ערכים יורדת, והאיבר המקסימלי נמצא באמצעו.
א. כתבו פונקציה המקבלת מערך של מספרים שלמים ואת אורכו,
והופכת אותו "ממוין פירמידה". לדוגמא:
המערך: 0 1 2 3 4 5 6 7 8 9 , יהפוך ל: 0 2 4
6 8 9 7 5 3 1
המערך: 6   1 -13   12   7   0   5   , יהפוך ל: -13   1   
6   12    7   5   0
חזרה לתחילת העמוד הצג את כרטיס החבר של tubleron חפש הודעות אחרות של tubleron
 
tubleron
משתמש מתחיל
משתמש מתחיל


הצטרף / הצטרפה: 15 December 2011
משתמש: מנותק/ת
הודעות: 2
נשלח בתאריך: 15 December 2011 בשעה 22:53 | IP רשוּם
ציטוט tubleron

זה הקוד שבניתי עד כה אם מישהו יוכל לכוון כי פשוט אני לא
מסתדר עם זה...:
     
#include <stdio.h>
void pyrr(int arr[],int length);
void displayarray(int arr,int length);
int main()
{
     int i=0,arr[9];
     printf("enter 9 numbers\n");
     scanf("%d",&arr[9]);
     arr=arr[0];
   for(i=0; i<9; i++)
     {
          if(arr==arr[i++])
          printf("incorrect array\n");
          
     }
     

}

     void pyrr(int arr[],int length)
     {
          int i,t,temp,checki,checkt;
         for(i=0; i<length; i++)
          {
               if(i%2==0)
                     checki=i/2;
               else
                     checki=length-1-i/2;
               for(t=i; t<length; t++)
               {
                     if (t%2==0)
                          checkt=t/2;
                     else
                          checkt=checkt-1-
t/2;
                     if(arr[checkt]
<arr[checki])
                     {
                          temp=arr[checkt];
                          
arr[checkt]=arr[checki];
                          arr[checki]=temp;
                     }
               }
          }
     }

     void displayarray(int *arr,int length)
     {
          int i;
          for(i=0; i<length; i++)
               printf("%d",arr);
          printf("\n");
     }
          
חזרה לתחילת העמוד הצג את כרטיס החבר של tubleron חפש הודעות אחרות של tubleron
 
Ohad_f
משתמש מתחיל
משתמש מתחיל


הצטרף / הצטרפה: 17 December 2011
מדינה: Israel
משתמש: מנותק/ת
הודעות: 2
נשלח בתאריך: 17 December 2011 בשעה 01:21 | IP רשוּם
ציטוט Ohad_f

שלום חבר, האמת היא שלא התבוננתי במה שעשית עקב מחסור בזמן.
אנני יודע מה אתם למדתם עד עכשיו ומה מגבלות השאלה. בכל
אופן, מכיוון שאתה יודע את גודל המערך (מהפרמטר של
הפונקציה) אתה יכול להגדיר מערך נוסף בתוך הפונקציה ע"י
פונקצית malloc בגודל המתאים. משהו שיראה ככה (שים לב
שהסוגריים זזו עקב ה editor של האתר)...בכל אופן
int *p;
p =(int*)malloc(50*sizeof(int));

לאחר שהגדרת מערך נוסף, תעתיק את התוכן של המערך המקורי
למערך החדש(ששמו p לפי מה שכתבתי לך).

כעת תמיין את המערך P ע"י אחד מאלגוריתמי המיון.
ולסיום נשאר לך לעבור על המערך P הממוין ולהעתיק אותו(מהקטן
לגדול) למערך המקורי,כאשר בכל איטרציה אתה מעתיק לצד אחר של
המערך המקורי.

מקווה שסייעתי לך..בהצלחה
אם עדיין תהייה לך בעיה אני יוכל לראות את מה שעשית רק ביום
שלישי לכל המוקדם.

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


הצטרף / הצטרפה: 17 December 2011
מדינה: Israel
משתמש: מנותק/ת
הודעות: 2
נשלח בתאריך: 17 December 2011 בשעה 12:17 | IP רשוּם
ציטוט Ohad_f

למקרה שאתה לא יודע ליצור מערך באופן דינמי, אתה יכול ליצור
מערך רגיל בתוך הפונקציה ע"פ הגודל שקיבלת... זה אולי יקל
עלייך את ההבנה...המשך יום מוצלח,אוהד.
חזרה לתחילת העמוד הצג את כרטיס החבר של Ohad_f חפש הודעות אחרות של Ohad_f
 

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

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

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