我創建一個顯示數的方法,使用逆程序的:逆一個數,C++
例:
123 ==> 3*10^2 + 2*10^1 + 1*10^1 = 321
但輸出始終爲0任何幫助?
#include <stdio.h>
int power(int a)
{
int i;
int x = 1;
for (i = 1; i = a; i++)
{
x = x * 10;
}
return x;
}
int inv(int b)
{
int z = b, j = 0, s = 0, y;
for (z = b; z = 0; z = z/10)
{
for (y = z; y = 0; y = y/10)
{
j++;
}
s = s + (z % 10)*power(j - 1);
}
return s;
}
int main()
{
printf("please enter a number"); int n;
scanf("%d", &n);
printf("%d", inv(n));
return 0;
}
嘗試在調試器中單步調試程序。它應該馬上揭示一些問題。 –
由於我們不是調試器(大概你們都不是),所以你可能想要考慮爲你的變量命名更具描述性。表達式s = s +(z%10)* power(j-1)'對我來說是沒有意義的,除非我經歷整個函數來試圖找出什麼是''''''z'和'j' 。對於(z = b; z = 0; z = z/10)'看起來不正確的' – CompuChip
'。也許'z!= 0'。 –