ABA


"עזרה בתיקון תוכנית |שפת C|"
גירסת הדפסה        
קבוצות דיון פיתוח, תיכנות ובניית אתרים נושא #14476 מנהל    סגן המנהל    מפקח   Winner    צל"ש   מומחה  
אשכול מספר 14476
הולנדי
חבר מתאריך 26.5.05
603 הודעות
   23:23   06.12.07   
אל הפורום  
  עזרה בתיקון תוכנית |שפת C|  
 
אוקי נתקעתי קצת


התוכנית אמורה לקלוט מספר לדוגמא 123
ולהחזיר את ההופכי שלו אבל בתור מספר ולא בתור איברים בודדים זאת אומרת 321
הצלחתי לבנות את זה אבל אסור לי להשתמש בפונקציה POW ואסור לי להשתמש בקאונטר
מישהו יכול לעזור לי לסדר את התוכנית ללא 2 התנאים האלה?

תודה


#include<stdio.h>
#include<math.h>

int sum_digit(int);
int oppsite(int,int);

void main()
{
int num,n,sum;
printf("Pls enter a number:");
scanf("%d",&num);
n=sum_digit(num);
printf("counter: %d\n",n);

sum=oppsite(num,n);
printf("\nThe oppsite num is:%d",sum);
scanf("%d",&n);

}

int sum_digit(int num)
{
int count=0;
while(num>0)
{
count++;
num=(num/10) ;
}
return(count);
}

int oppsite(int num,int n)
{
int sum=0,tmp;

if ((n-1>0)&&(num>0))
{
sum=num%10*(pow(10,n-1));
return(sum+=oppsite(num/10,n-1));
}

return(num%10);
}

https://www.xchef.co.il | אתר
בישולים חברתי


                                שתף        
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד

  האשכול     מחבר     תאריך כתיבה     מספר  
  הנה רעיון... -ReDevil- 07.12.07 13:39 1
  אתה באמת צריך את הקאונטר? idan192 07.12.07 14:00 2
  תודההה לשניכם הולנדי 07.12.07 17:59 3

       
-ReDevil-

   13:39   07.12.07   
אל הפורום  
  1. הנה רעיון...  
בתגובה להודעה מספר 0
 
   תעשה משתנה weight ו base. קודם כל base = 10 ו weight = 1. ואז כל פעם אתה לוקח את הספרה הכי ימנית של הקלט שלך וכופל אותה ב weight ושם כל פעם את התוצאה כסכום מצטבר ואחרי כל פעולה כזאתי אתה מכפיל את weight ב base ככה שפעם ראשונה אתה מכפיל ב 1, ואז 10, 100 וכו'.

התנאי בלולאה כמובן כל עוד המספר גדול מ 0 כלומר עד שנסיים עם כל הקלט.


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
idan192

   14:00   07.12.07   
אל הפורום  
  2. אתה באמת צריך את הקאונטר?  
בתגובה להודעה מספר 0
 
   ערכתי לאחרונה בתאריך 07.12.07 בשעה 14:17 בברכה, idan192
 
בכל מקרה, הינה דוגמא. עדיף להשתמש בקאונטר אם כבר כסופר מאות.
נסה להבין את הקוד הפשוט שבניתי:

#include<stdio.h>
#include<math.h>

int sum_digit(int num);
int oppsite(int num, int n);

int main()
{
int num,n,sum;
printf("Pls enter a number: ");
scanf("%d",&num);
n = sum_digit(num);
printf("counter: %d\n", n);
sum = oppsite(num, n);
printf("\nThe oppsite num is: %d\n", sum);
// scanf("%d",&n);
system("pause");
return 0;
}

int sum_digit(int num)
{
int i, j=1;
for(i = num; num /= 10; i++, j *= 10);
return j;
}

int oppsite(int num, int n)
{
int i=0;
while(n)
{
i += (num%10)*n;
n /= 10;
num /= 10;
}
return i;
}


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
הולנדי
חבר מתאריך 26.5.05
603 הודעות
   17:59   07.12.07   
אל הפורום  
  3. תודההה לשניכם  
בתגובה להודעה מספר 0
 

https://www.xchef.co.il | אתר
בישולים חברתי


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד

תגובה מהירה  למכתב מספר: 
 
___________________________________________________________________

___________________________________________________________________
למנהלים:  נעל | תייק בארכיון | מחק | העבר לפורום אחר | מחק תגובות | עגן אשכול
       



© כל הזכויות שמורות ל-רוטר.נט בע"מ rotter.net