פורסם 2014 במרץ 311 שנים נניח ויש לי זמן = 52200אני צריך לפצל את הזמן לשניות דקות ושעותאני מצליח להגיע לשעות אבל מסתבך עם הדקות והשניות ...hours = time/3600 יתן לי 14.5 אבל 0.5 ירד בגלל שזה מספר שלם.
פורסם 2014 במרץ 311 שנים מחבר hours = time/3600 = 14.5hours = 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;}למה הוא לא מאפשר לי ?? אם אני אעשה כל אחד בנפרד זה הולך אבל זה לא יעיל בכתיבה ללא ספק!
פורסם 2014 במרץ 311 שנים פשוט לא ככה עובד ||. חייבים לבדוק אחד אחד. אופציה אחרת היא להשתמש ב-switch.(אגב, זה תחביר חוקי ב-C, אבל הוא ממש לא יעשה מה שאתה מצפה לו)לגבי בעיית השניות והדקות, את פעולת מודולו (%) אתה מכיר? נערך 2014 במרץ 311 שנים על-ידי שניצל
פורסם 2014 במרץ 311 שנים מחבר #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;}אז בעצם זו הדרך הכי קצרה לפיתרון שלי?כן אני מכיר מודולו כמובן, רק צריך לקחת בחשבון שאני צריך קודם כל לעשות השמה לsecondsminuteshoursבסדר הזה כאשר time מוזן ע"י המשתמש (לפי סה"כ שניות)
פורסם 2014 במרץ 311 שנים כן, או כאמור לעשות if עם הרבה ||. אתה יכול גם לחסוך חצי מהבדיקות באמצעות tolower.אם למדת על מודולו אז לא אמורה להיות לך בעיה. תתחיל מהשניות ומהשעות, הדקות זה טיפה יותר מורכב.
ארכיון
דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.