输入1785就会进入死循环,不停地输出15,怎么回事?还有就是while( scanf("%o",&n)!=EOF )这句不在我学的范围之内,我才刚学完指针,请用指针之前的知识编,可以复杂,但算法简单就行。还有就是能不能不用返回值来编?谢谢你帮我,修改好了再加20分,麻烦您了。
追答首先,我们输入的数字应该是八进制的数字,怎么可能会有"8"出现呢?另外,我帮你不是为了加分的,希望你能够继续学习。其实函数调用、参数传递、返回值等等都是编程里经常出现的,你应该要有克服困难的心态。
#include
#include"windows.h"
int mishu(int j)
{
int result = 1;
for(;j>0;j--)
{
result *= 8;
}
return result;
}
void main()
{
int n = 0;
char s[100];
gets(s);
for(int i=strlen(s)-1,j=0;i>=0;i--,j++){
n += (s[i]-'0')*mishu(j);
}
printf("%d\n",n);
}
首先,我们输入的数字应该是八进制的数字,怎么可能会有"8"出现呢?另外,我帮你不是为了加分的,希望你能够继续学习。其实函数调用、参数传递、返回值等等都是编程里经常出现的,你应该要有克服困难的心态。
#include
#include"windows.h"
int mishu(int j)
{
int result = 1;
for(;j>0;j--)
{
result *= 8;
}
return result;
}
void main()
{
int n = 0;
char s[100];
gets(s);
for(int i=strlen(s)-1,j=0;i>=0;i--,j++){
n += (s[i]-'0')*mishu(j);
}
printf("%d\n",n);
}