עבור לתוכן

מציאת בעיה בקוד פשוט בC.

Featured Replies

פורסם

שלום חבר'ה,

אני צריך לכתוב תכנית שקולטת 2 סטים של מספרי ת.ז, גובה ומשקל ומציגה אותם כמו בקובץ התמונה שהעליתי.

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

3058712 1.706 78.858

123456789 0.743 10.2

זה הקוד שכתבתי, קצת מסובך ולא יפה, אבל זה מה שהצלחתי לעשות. בכל מקרה, הבעיה היחידה שיש בו היא שכשאשר אני מנסה להציג את id2/10 מוצג מספר לא ידוע שלילי וארוך.

[left]#include <stdio.h>

int main()
{
unsigned long int id1;
unsigned long int id2;
float height1, height2, weight1, weight2;
scanf("%d %f %f",&id1,&height1,&weight1);
scanf("%d %f %f",&id2,&height2,&weight2);
printf("--\t----------\t-----\t------\n");
printf(" %d\t%8.8d-%d\t%-4.2f\t %5.2f\n",1,id1/10,id1%10,height1,weight1);
printf(" %d\t%8.8d-%d\t%-4.2f\t %5.2f\n",2,id2/10,id2%10,height2,weight2);
return 0;
}
[/left]

תודה מראש לכל העוזרים.

[attachment deleted by admin]

פורסם

הדרך להדפיס unsigned long ב-printf היא:


unsigned long l;
printf("l = %lu",l);

פורסם
  • מחבר

זה עדיין לא עובד לי. וההצגה של המספר הראשון עם %d עובדת כמו שצריך.

ד"א כאשר אני מנסה להדפיס את id2 בלי ה"חלקי 10" אז הוא עובד בסדר גמור, למה id2/10 משגע אותו?

פורסם

תעשה המרה ל double ל Id2 לפני החילוק.

פורסם
  • מחבר

בכל מקרה, יצרתי שני int-ים חדשים, בהם שמרתי את החלקי 10 של id1 וid2 ואז זה עבד.

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

תודה לכם על העזרה רבותיי :xyxthumbs:

ארכיון

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

דיונים חדשים