谁能告诉我这怎么改?
我做到一道题:“有下列程序:
main()
{ char *p[]={"3697","2584"};
int i,j;long num=0;
for(i=0;i<2;i++)
{j=0;
while(p[i][j]!='\0')
{if((p[i][j]-'\0')%2)num=10*num+p[j][j]-'0';
j+=2;
}
}
printf("%d\n",num);
}
程序执行的结果是()。”
我用win-tc运行结果是99.
参考答案是3975.【解析】执行第一次for循环时,用表达式p[i][j]!='\0'来判断字符窜数组指针p是否到达字符串的结尾,如果没有到达,继续执行while中的语句。if语句表示(p[i][j]-'\0')除2的余数不为0时,既字符串所有奇数,执行后面的语句。所以退出第一次for的循环体时,输出397,执行第2次循环体。对字符串“2584”经行处理,输出结果为5,因而最后输出结果为3975.
哪位高手能告诉我这之间的问题。。。。。
还有,同样是这个程序,为什么我用win-tc运行是99 用vc++运行是0