פורסם 2012 במאי 2413 שנים #include<stdio.h>#include<math.h>long sifra(long num , int digit){ int i=0; long sum=0,temp; while ( num != 0 ) { temp= num%10; num=num/10; if ( temp != digit) { sum=sum + temp*powl(10,i); i++; } } return sum;}void main(){long num;int digit;printf("Please enter a number and a digit\n");scanf("%d%d",&num,&digit);printf("The number without the digit is: %g",sifra(num,digit);}
פורסם 2012 במאי 2413 שנים תערוך את ההודעה ושים את כל הקוד בתוך טג קוד, הוא יהיה יותר קריא ככה.הקוד שלך סה"כ כמעט נכון, רק תחשוב איך תוכל לשנות קצת את i ככה שלא תצטרך להשתמש בפונקציית חזקה (ולא הבנתי למה אתה מדפיס את התוצאה באמצעות g%).אתה מכניס טקסט, ואתה רוצה להפריד את המספרים מהאותיות?איך הבנת את זה ממה שהוא כתב? הוא אמר שהוא מקבל מספר וספרה, והוא רוצה למחוק את כל המופעים של הספרה מהמספר. דהיינו אם הוא מקבל 356246 ו-6 אז הוא יחזיר 3524.
פורסם 2012 במאי 2413 שנים מחבר אגב התוכנית לא רצה לי משום מה נראה לי יש לי בעיה בסוגי טיפוסים שאני מכניס לpower שניצל אשמח אם תראה לי את הפתרון שלך ללא החזקה , אני לא רואה את זה.ואני שם %g כי התוכנית לא רצה לי וחשבתי שזה בגלל ה%g או %d וכוליי זה מה ששמתי בסוף.( לא עזר ).
פורסם 2012 במאי 2513 שנים ממה שזכור לי בתכנות, כדי לעשות זאת הייתי הופך את המספר לטקסט, ואז מריץ אותו דרך לולאה שעוברת על האותיות אחד אחד ובהתאמה מעביר את מה שרלוונטי למשתנה אחר.
פורסם 2012 במאי 2513 שנים ^^ זה לא נחוץ, כמו שכבר אמרתי הפתרון כמעט מושלם חוץ מהבעיה של החזקה (אם היה מדובר בשפה עם פונקציות יותר חזקות לטיפול במחרוזות אז אפשר היה לעשות את זה בשתי שורות, אבל זה לא הפואנטה של התרגיל).AmiLo: התכנית לא רצה לך כי אתה מנסה לשים את התוצאה של pow (שהיא double) בתוך משתנה שהוא long. אבל בעיקרון עדיף להימנע משימוש ב-pow כשאפשר. תזכור שאתה לא באמת מחשב כאן חזקות "מורכבות" - זה הכל חזקות של 10, שהולכות וגדלות לפי i (באיטרציה הראשונה זה 10 בחזקת 0, אחר כך 10 בחזקת 1, וכן הלאה).
פורסם 2012 במאי 2513 שנים לשואל המקורי,שווה שתכתוב פונקציה שעושה טסט לפונקציה המקורית שאותה התבקשת לכתוב. לדוגמה:void test_remove_digit(){ assert( remove_digit (123, 2) == 13 ); assert( remove_digit (123, 1) == 23 ); assert( remove_digit (123, 3) == 12 ); assert( remove_digit (12123, 2) == 113 ); assert( remove_digit (12123, 1) == 223 );// .....}תשלב מקרים בהם התוצאה היא 0, שלא יורדת אף סיפרה, שתי ספרות רצוף, הורד בקצוות ובאמצע, אף הורדה וכו' וכו'.
ארכיון
דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.