IOPanel

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

תיכנות פורום בנושאי תיכנות , פיתוח אתרים , שפות תיכנות , אפליקציות סלולר וטאבלטים.

תוכנה ומערכות הפעלה : תיכנות

לבודד את המספר שלאחר הנק' העשרונית בC

אני עובד עם VS 2008. אז ככה, איך מבודדים מספר שלאחר הנקודה העשרונית? נגיד אם הקלט הוא 34.89 אז הפלט ...
תגובה
 
קישור חוזר הגדרות אשכול אפשרויות הצגת נושא
ישן 20-11-10, 13:41   #1 (קישור ישיר)
IO Member
 
סמל האישי של Jigit
 
תאריך הצטרפות: Sep 2007
הודעות: 690
ברירת מחדל לבודד את המספר שלאחר הנק' העשרונית בC

אני עובד עם VS 2008.

אז ככה, איך מבודדים מספר שלאחר הנקודה העשרונית?
נגיד אם הקלט הוא 34.89
אז הפלט צריך להיות 0.89

כתבתי תכנית אבל זה נותן שגיאה(בשורה 9):
קוד:
error C2296:'%':illegal, left operand has type 'float'
זו התוכנית שכתבתי (מערך שקולט 7 מספרים ממשיים ומחזיר את המספר שלאחר הנקודה לפי הדוגמא שנתתי):
קוד:
#include<stdio.h>
void main()
{
    int i;
    float m[7];
for(i=0;i<7;i++)
{
    scanf("%f",&m[i]);
    printf("%f",m[i]%100);
}}
מה עושים חבר'ה?
Jigit לא מחובר   הגב עם ציטוט
ישן 20-11-10, 13:59   #2 (קישור ישיר)
IO Gadgets
 
סמל האישי של iakovl
 
תאריך הצטרפות: Jan 2007
הודעות: 13,202
ברירת מחדל

מוזר... אמור לעבוד
יש לי משהו די דומה שכתבתי שלא מביא את השגיאה הזאת
__________________
Device: Gnote ROM: CM9 #7 Kernel: stock Modem:LB2
Main: E8400, Asus P5Q pro, 2*2gb G.skill PI DDR900, Perc 5/i HD103UJx4 RAID5 , wd3200aaks, HD4850, P180, VX450W, audigy 2 zs platinium pro, HD595, DELL 2709W
ביקורות: 7ZIP , Thermalright HR-5 , Arctic-Cooling Accelero S1 Rev.2 , Scythe Kaze Master 5.25, Cruzer Titanium ,Seagate FreeAgent USB 2.0 500gb, WD My Book Home Edition 500gb otterbox impact, Scythe Kamazo 2 eSata, iTwin
iakovl לא מחובר   הגב עם ציטוט
ישן 20-11-10, 14:34   #3 (קישור ישיר)
IO Chats
 
סמל האישי של dany_74q
 
תאריך הצטרפות: Jun 2008
הודעות: 4,790
ברירת מחדל

פעולת מודולו מתבצעת רק על int`s .

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

קוד:
#include<stdio.h> void main() { int i; double res; double num[7]; for(i=0;i<7;i++) { scanf("%lf",&num[i]); res=(num[i] - (int)(num[i])); //(Double)(num) - (int)(num) = the number after the FP , eg: 5.6 - 5= 0.6 . printf("%lf\n",res); } //for } //main
__________________
dany_74q לא מחובר   הגב עם ציטוט
ישן 20-11-10, 16:29   #4 (קישור ישיר)
IO Member
 
סמל האישי של Jigit
 
תאריך הצטרפות: Sep 2007
הודעות: 690
ברירת מחדל

אוקי, רגע בודק.
Jigit לא מחובר   הגב עם ציטוט
ישן 20-11-10, 16:43   #5 (קישור ישיר)
IO Member
 
סמל האישי של Jigit
 
תאריך הצטרפות: Sep 2007
הודעות: 690
ברירת מחדל

לא כל כך הבנתי למה אתה צריך כאן מערך?
Jigit לא מחובר   הגב עם ציטוט
ישן 20-11-10, 16:49   #6 (קישור ישיר)
IO Gadgets
 
סמל האישי של iakovl
 
תאריך הצטרפות: Jan 2007
הודעות: 13,202
ברירת מחדל

אתה זה שכתבת את המערך בקוד... הוא מיותר אם כל מה שאתה עושה זה לקלוט מספר ואז להדפיס אותו בלי לעשות הרבה איתו אחרי זה
__________________
Device: Gnote ROM: CM9 #7 Kernel: stock Modem:LB2
Main: E8400, Asus P5Q pro, 2*2gb G.skill PI DDR900, Perc 5/i HD103UJx4 RAID5 , wd3200aaks, HD4850, P180, VX450W, audigy 2 zs platinium pro, HD595, DELL 2709W
ביקורות: 7ZIP , Thermalright HR-5 , Arctic-Cooling Accelero S1 Rev.2 , Scythe Kaze Master 5.25, Cruzer Titanium ,Seagate FreeAgent USB 2.0 500gb, WD My Book Home Edition 500gb otterbox impact, Scythe Kamazo 2 eSata, iTwin
iakovl לא מחובר   הגב עם ציטוט
קישור פירסומי
ישן 20-11-10, 16:53   #7 (קישור ישיר)
IO Member
 
סמל האישי של Jigit
 
תאריך הצטרפות: Sep 2007
הודעות: 690
ברירת מחדל

צודק, טעות שלי.

רק אם אפשר הסבר על השורה הזאת:
קוד:
res=(num[i] - (int)(num[i]))
מה זה הסוגריים האלה שבתוכם יש את INT ?
לא זכור לי שלמדנו עוד משהו כזה.
Jigit לא מחובר   הגב עם ציטוט
ישן 20-11-10, 16:58   #8 (קישור ישיר)
IO Gadgets
 
סמל האישי של iakovl
 
תאריך הצטרפות: Jan 2007
הודעות: 13,202
ברירת מחדל

בגדול הוא הכריח את המערכת להפוך את הFLOAT לINT ועל ידי כך להוריד את כל מה שלפני הנקודה
נגיד המספר הוא 1.1 הוא גרם על ה(int) להפוך אותו בעצם ל1 בלבד בלי ה0.1 ואז חיסר אותו מהמספר המקורי
קוד:
1.1-1=0.1
__________________
Device: Gnote ROM: CM9 #7 Kernel: stock Modem:LB2
Main: E8400, Asus P5Q pro, 2*2gb G.skill PI DDR900, Perc 5/i HD103UJx4 RAID5 , wd3200aaks, HD4850, P180, VX450W, audigy 2 zs platinium pro, HD595, DELL 2709W
ביקורות: 7ZIP , Thermalright HR-5 , Arctic-Cooling Accelero S1 Rev.2 , Scythe Kaze Master 5.25, Cruzer Titanium ,Seagate FreeAgent USB 2.0 500gb, WD My Book Home Edition 500gb otterbox impact, Scythe Kamazo 2 eSata, iTwin
iakovl לא מחובר   הגב עם ציטוט
ישן 20-11-10, 17:04   #9 (קישור ישיר)
IO Member
 
סמל האישי של Jigit
 
תאריך הצטרפות: Sep 2007
הודעות: 690
ברירת מחדל

ציטוט:
פורסם במקור על ידי iakovl צפה בהודעה
בגדול הוא הכריח את המערכת להפוך את הFLOAT לINT ועל ידי כך להוריד את כל מה שלפני הנקודה
נגיד המספר הוא 1.1 הוא גרם על ה(int) להפוך אותו בעצם ל1 בלבד בלי ה0.1 ואז חיסר אותו מהמספר המקורי
קוד:
1.1-1=0.1
ויש אילוצים כלשהם כאשר אני מצמיד (int) למשתנה שהוא מוגדר כfloat ?
Jigit לא מחובר   הגב עם ציטוט
ישן 20-11-10, 17:06   #10 (קישור ישיר)
IO Gadgets
 
סמל האישי של iakovl
 
תאריך הצטרפות: Jan 2007
הודעות: 13,202
ברירת מחדל

חפש את זה ברשת ותמצא הסבר יותר מורחב
בגדול שימוש ב() עם שם משתנה אחר ממה שהמשתנה באמת פשוט מכריח אותו לשנות באופן זמני את סוג המשתנה עם כל מה שכלול בזה, דבר שאתה מנצל כמו בדוגמה הזאת למשל
__________________
Device: Gnote ROM: CM9 #7 Kernel: stock Modem:LB2
Main: E8400, Asus P5Q pro, 2*2gb G.skill PI DDR900, Perc 5/i HD103UJx4 RAID5 , wd3200aaks, HD4850, P180, VX450W, audigy 2 zs platinium pro, HD595, DELL 2709W
ביקורות: 7ZIP , Thermalright HR-5 , Arctic-Cooling Accelero S1 Rev.2 , Scythe Kaze Master 5.25, Cruzer Titanium ,Seagate FreeAgent USB 2.0 500gb, WD My Book Home Edition 500gb otterbox impact, Scythe Kamazo 2 eSata, iTwin
iakovl לא מחובר   הגב עם ציטוט
ישן 20-11-10, 17:16   #11 (קישור ישיר)
IO Chats
 
סמל האישי של dany_74q
 
תאריך הצטרפות: Jun 2008
הודעות: 4,790
ברירת מחדל

יעקב הסביר את זה מעולה , אתה יכול לחפש על זה ברשת - זה נקרא Casting .
אם אתה לא יכול להשתמש בזה - אתה יכול להגדיר משתמש נוסף כint , שיקבל בלולאה את הערך של
num[i] ותחסר ממנו .
__________________
dany_74q לא מחובר   הגב עם ציטוט
ישן 20-11-10, 17:16   #12 (קישור ישיר)
IO Member
 
סמל האישי של Jigit
 
תאריך הצטרפות: Sep 2007
הודעות: 690
ברירת מחדל

הבנתי. תודה רבה! עזרתם מאוד
Jigit לא מחובר   הגב עם ציטוט
תגובה


הגדרות אשכול
אפשרויות הצגת נושא

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

vB code הינו פועל
סמיילים הינו פועל
קוד [IMG] הינו פועל
קוד HTML הינו כבוי
Trackbacksהינו פועל
Pingbacks הינו פועל
Refbacks הינו פועל

נושאים דומים
אשכול מפרסם האשכול פורום תגובות הודעה אחרונה
מחפש את המספר של "חיוון" יבאון סמסונג amadey מחשבים ומה שמסביב 1 26-10-09 19:40
למה הכוונה ב-PCIE חוץ מלחריץ עצמו? (בביוס לדוגמא המספר 100) GT-R מעבדי INTEL ולוחות אם 11 06-07-09 18:41


כל הזמנים הם GMT +3. השעה כרגע היא 10:40.





מופעל על ידי: vBulletin
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO
IOPanel.net © כל הזכויות שמורות