עבור לתוכן

שלום. שפת C - עזרה בתיקון קוד

Featured Replies

פורסם

מה נשמע חברים אני דיי חדש פה אני מנסה לבנות תוכנית שתחשב לעובד את השכר שלו לפי שעות . שעות נוספות . ושעות סופ''ש ולקבל לבסוף תוצאה סופית של כולם אשמח לקבל עזרה בקוד הבא:

#include <stdio.h>

int main()
{
int hours;
int rate;
int extra;
int sat;
int total;
double salary;

int counter = 0;

do
{
printf( "Please Enter Rate,Base Hours,Extra Hours,Weekend Hours (-1 to end): " );
scanf( "%d%d%d%d", &rate,&hours,&extra,&sat);

if( hours <= 8 )
{
salary = rate * hours;
printf( "Salary is %f\n", salary );

}
else
{
salary = rate * 1.25 * hours
printf( "Salary is %f\n", salary );
}

counter++;
}while( hours != -1 );

{
if( hours <= 40 )
{
salary = rate * hours;
}
else
{
salary = 40 * rate + (hours - 40) * (rate * 1.5);
}

printf( "Salary is %d\n", salary );

}
return 0;
}

זה הקוד הישן את את הקטע של ה-40 לא להתייחס מחר אני אתקן :)

נערך על-ידי BenSalem2

פורסם

מה שאתה כותב אמור להיות פרקטי? או פשוט לתרגל תכנות?

פורסם
  • מחבר
מה שאתה כותב אמור להיות פרקטי? או פשוט לתרגל תכנות?

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

בכל מקרה יש למישהו פתרון?

פורסם

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

(נתחיל מזה שהתוכנית לא תתמודד טוב עם מספרים לא שלמים....)

- - - נערך: - - -

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

אתה מציב למשתנה SALARY כל הזמן משהו חדש, הוא לא "צובר" את המשכורת.

ואז לא ברור אם החישוב שבועי, חודשי....

בקיצור, סלט.

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

(נתחיל מזה שהתוכנית לא תתמודד טוב עם מספרים לא שלמים....)

- - - נערך: - - -

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

אתה מציב למשתנה SALARY כל הזמן משהו חדש, הוא לא "צובר" את המשכורת.

ואז לא ברור אם החישוב שבועי, חודשי....

בקיצור, סלט.

חח כן אחי סלט

אז ככה אני מנסה ליצור חישוב כזה

המשתמש צריך להכניס את המשתנים : שכר בסיס לשעה נגיד הכנסתי 23.12 (בסיס) את השעות שהוא עבד בשכר הבסיס נגיד 100

את השעות הנוספות שהוא צבר נגיד 10:

ואת השעות סופ''ש : נגיד 10 גם כן את השעות נוספות אני רוצה שהתוכנית תכפיל ב-1.25 ואת שעות סופ''ש ב1.5 (125% . 150%)

לבסוף המשתמש יקבל את סיכום השעות כולל שעות נוספות ושעות שבת TOTAL

תודה על העזרה

בן,

פורסם

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

2. המשתנים שלך הם שלמים - לא תוכל להכניס להם מספרים לא שלמים. תשנה את זה.

3. אם מדובר בחישוב אחד (תבטל את הלולאה) אז זה סיפור פשוט - תכניס את הכל למשתנים ותכתוב את הלוגיקה המתאימה.

4. אם מדובר בחישוב מצטבר - אז אתה צריך למשתנה SALARY להכניס מידע בצורה הזאת:

Salary +=

ולא רק עם = כדי שישמור על הערך הקודם שלו.

מוזר, הפורום לא מקבל הפיכת כיוון רק בשורה אחת. זה הופך את כל הטקסט...

נערך על-ידי kdani

פורסם

מוזר, הפורום לא מקבל הפיכת כיוון רק בשורה אחת. זה הופך את כל הטקסט...

למה להצמיד לשמאל? תשתמש בכפתור קוד.

פורסם
  • מחבר
למה להצמיד לשמאל? תשתמש בכפתור קוד.

שוב תודה על החזרה

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

לדוגמא איך אני מכניס מספרים לא שלמים DOUBLE??

ואיזה לוגיקה תהיה מתאימה בחישוב אחד?

אם אפשר לקבל קוד לדוגמא או תיקון של הקוד שלי..

פורסם

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

פורסם

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

while((c = getchar()) != '\n' && c != EOF)

פורסם
  • מחבר
שוב תודה על החזרה

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

לדוגמא איך אני מכניס מספרים לא שלמים DOUBLE??

ואיזה לוגיקה תהיה מתאימה בחישוב אחד?

אם אפשר לקבל קוד לדוגמא או תיקון של הקוד שלי..

???

פורסם

בשלב הזה מציע שתלמד את ה-Syntax של השפה, הפורום זה לא בדיוק המקום לכך. יש בלי סוף מידע זמין ברשת, פשוט תרשום ב-Google ותראה את התשובות.

פורסם
  • מחבר
בשלב הזה מציע שתלמד את ה-Syntax של השפה, הפורום זה לא בדיוק המקום לכך. יש בלי סוף מידע זמין ברשת, פשוט תרשום ב-Google ותראה את התשובות.

אוקי קראתי קצת על הסינטקס של השפה ניסיתי קוד חדש ונתקעתי פה

זה הקוד

#include <stdio.h>

int main()
{
int datacount = 0;
int clockNo = 0;
float hours = 0.0;
float gross = 0.0;
double wage = 23.12;
double ext = 28.9;
double sat = 34.6;
float extra;
float week;

printf("PayCheak Caulculatorn\n");
printf("How many hours did you worked? ");
scanf("%d",&hours);
printf("How many extra hours did you worked? ");
scanf("%d",&extra);
printf("How many weeked hours did you worked? ");
scanf("%d",&week);
printf("gross = (hours*wage)+(extra*ext)+(week*sat));

{

return (0);
}




}

פורסם

קח רוורס, ותעבור שוב על הסינטקסט. כשאתה עושה Scanf ל- Float זה f% ולא d%

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

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

דיונים חדשים