עבור לתוכן

תרגיל בהמרת זמן

Featured Replies

פורסם

נניח ויש לי זמן = 52200

אני צריך לפצל את הזמן לשניות דקות ושעות

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

hours = time/3600 יתן לי 14.5 אבל 0.5 ירד בגלל שזה מספר שלם.

פורסם
  • מחבר

hours = time/3600 = 14.5

hours = int ולכן התוצאה שתתקבל תהיה 14...

שאלה נוספת שלא קשורה בקשר לסינטקס:

אני מנסה לעשות IF למשתנה שקיים או בין הבדיקות ... למה הוא לא מאפשר לי ?

#include <stdio.h>


int main ()
{
char nextch = 'x';
int vowels = 0;
while (nextch != '\n')
{
scanf("%c",&nextch);
if (nextch == ('A' || 'a' || 'E' || 'e' || 'I' || 'i' || 'O' || 'o' || 'U' || 'u' ) )
vowels++;
}
printf("%d\n",vowels);



return 0;
}

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

פורסם

פשוט לא ככה עובד ||. חייבים לבדוק אחד אחד. אופציה אחרת היא להשתמש ב-switch.

(אגב, זה תחביר חוקי ב-C, אבל הוא ממש לא יעשה מה שאתה מצפה לו)

לגבי בעיית השניות והדקות, את פעולת מודולו (%) אתה מכיר?

נערך על-ידי שניצל

פורסם
  • מחבר

#include <stdio.h>


int main ()
{
char nextch = 'x';
int vowels = 0;
while (nextch != '\n')
{
scanf("%c",&nextch);
switch (nextch)
{
case 'A':
case 'a':
case 'E':
case 'e':
case 'I':
case 'i':
case 'O':
case 'o':
case 'U':
case 'u':
vowels++;
break;


default:
break;
}
}
printf("%d\n",vowels);



return 0;
}

אז בעצם זו הדרך הכי קצרה לפיתרון שלי?

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

seconds

minutes

hours

בסדר הזה כאשר time מוזן ע"י המשתמש (לפי סה"כ שניות)

פורסם

כן, או כאמור לעשות if עם הרבה ||. אתה יכול גם לחסוך חצי מהבדיקות באמצעות tolower.

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

ארכיון

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

דיונים חדשים