לוגו אתר Fresh          
 
 
  אפשרות תפריט  ראשי     אפשרות תפריט  צ'אט     אפשרות תפריט  מבזקים     אפשרות תפריט  צור קשר     חץ שמאלה ‎print ‎"Hello World!"; if‎ ‎not rules.‎know ‎then rules.‎read(); חץ ימינה  

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



  #1  
ישן 09-06-2009, 12:28
  gavri gavri אינו מחובר  
 
חבר מתאריך: 17.03.05
הודעות: 114
עזרה עזרה בתרגיל ב- C בבקשה...

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





struct employee (char name[15], int age, float salary)











כתוב פונקציה YOUNG המקבלת כפרמטרים מערך של עובדים במפעל ואת גודלו. הפונקציה מדפיסה את שמותיהם של כל העובדים ששכרם גבוה מהממוצע, וגילם נמוך מהממוצע. הערך המוחזר הוא מס' העובדים ששמותיהם הודפסו.
כתוב את הפונקציה הראשית בתוכנית. הפונקציה קולטת מהמשתמש את מס' העובדים במפעל, ואת פרטיהם (שמות, גילאים ומשכורות). הפונקציה הראשית קוראת לפונקציה YOUNG ומדפיסה את הערך המוחזר.

הפיתרון שלי לתרגיל כאן בקובץ הזה:
https://2009-uploaded.fresh.co.il/2...09/54802144.cpp

הקומפיילר (Visual studio 2008) נותן לי שגיאה:

error C2228: left of '.name' must have class/struct/union

חברים, מה לא הגדרתי נכון ???

נערך לאחרונה ע"י gavri בתאריך 09-06-2009 בשעה 12:31.
תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #4  
ישן 11-06-2009, 00:05
צלמית המשתמש של Narxx
  משתמש זכר Narxx Narxx אינו מחובר  
 
חבר מתאריך: 21.12.04
הודעות: 30,021
בתגובה להודעה מספר 1 שנכתבה על ידי gavri שמתחילה ב "עזרה בתרגיל ב- C בבקשה..."

כמה הערות:

1. כמו שצוין מעלי - את ה struct שלך, תגדיר מחוץ ל main.
2. "______"___ תעשה int main ולא void main (למה? ככה).
3. כדי לסרוק ב scanf אל תשכח את ה & (בכל השורות של הסריקה לתוך המבנה)
קוד PHP:
 scanf ("%d",p_employee[i].age); 

צריך להיות:
קוד PHP:
 scanf ("%d",&(p_employee[i].age)); 

אם לא תתקן את זה, התוכנית תקרוס בכל פעם שתנסה להכניס מספר.

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

5. תשתדל לסמן ב { } גם דברים של שורה אחת (אפילו שההזחות שלך יפות). זה עוזר לקרוא קוד ולתקן אותו במיוחד כשרוצים להוסיף שורות ואז לך תחפש איפה הוא היה אמור להתחיל / להסתיים.

6. מצ"ב הקוד שלך במצב עובד. תעבור על השינויים ונסה ליישם בפעם הבאה
קוד PHP:
 #include <stdio.h>
#include <stdlib.h>

int young (struct employee vec[], int size);

struct employee
{
    
char name[15];
    
int age;
    
float salary;
} *
p_employee;

int main()
{

    
int isize;

    
printf ("insert number of employees: ");
    
scanf ("%d",&size);
    
    
p_employee = (struct employee *) malloc (size sizeof (struct employee));

    for (
i=0i<sizei++)
    {
        
printf ("insert data of employee %d\n",i+1);
        
printf ("Name: ");
        
scanf ("%s",p_employee[i].name);
        
printf ("Age: ");
        
scanf ("%d",&(p_employee[i].age));
        
printf ("Salary: ");
        
scanf ("%f",&(p_employee[i].salary));
    }

    
printf ("number of employees founded is: %d\n",young (p_employeesize));
}

int young (struct employee vec[], int size)
{
    
int imone 0;
    
float avg_age 0avg_salary 0;

    for (
i=0i<sizei++)
    {
        
avg_age += vec[i].age;
        
avg_salary += vec[i].salary;
    }
    
    
avg_age /= size;
    
avg_salary /= size;
    
    
printf ("Average age: %.2f\n"avg_age);
    
printf ("Average salary: %.2f\n"avg_salary);
    
    for (
i=0i<sizei++)
    {
        if ((
vec[i].salary avg_salary) && (vec[i].age avg_age))
        {
            
printf ("%s ",vec[i].name);
            
mone ++;
        }
    }
    
printf ("Names of employees which suitable the terms are: %d\n",mone);
    return 
0;

_____________________________________
בברכה, מתן.
www.MatanNarkiss.com

תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
תגובה

כלי אשכול חפש באשכול זה
חפש באשכול זה:

חיפוש מתקדם
מצבי תצוגה דרג אשכול זה
דרג אשכול זה:

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

קוד vB פעיל
קוד [IMG] פעיל
קוד HTML כבוי
מעבר לפורום



כל הזמנים המוצגים בדף זה הם לפי איזור זמן GMT +2. השעה כעת היא 10:21

הדף נוצר ב 0.06 שניות עם 12 שאילתות

הפורום מבוסס על vBulletin, גירסא 3.0.6
כל הזכויות לתוכנת הפורומים שמורות © 2024 - 2000 לחברת Jelsoft Enterprises.
כל הזכויות שמורות ל Fresh.co.il ©

צור קשר | תקנון האתר