69,369
社区成员
发帖
与我相关
我的任务
分享
while (num) {
tmp = num%10;
// 这不是 python。if 之后没有花括号,作用范围只有一行“num += 1;”。
if (tmp % 2 != 0)
num += 1;
result = (num % 10) * pow(10,i) + result;
i++;
num /= 10;
}
:!./a.out
0
0
0
0
4195712
10
4195392
0
1948630112
32767
楼上的代码,这是结果。如果对数组任意元素赋值,那么数组的其它元素就会被赋值为 0
这句话,怎么理解呢?
我的理解是这样的,比如:
#include <stdio.h>
int main(void)
{
int arr[10];
arr[5] = 10;
for (int i = 0; i < 10; i++)
printf("%d\n", arr[i]);
return 0;
}
#include <stdio.h>
#include <math.h>
int change_to_pmh_number(int num)
{
int i = 0;
int tmp, result = 0;
while (num) {
tmp = num%10;
if(tmp % 2 != 0)
num += 1;
result = (num % 10) * pow(10,i) + result;
i++;
num /= 10;
}
return result;
}
int main( void )
{
int num;
while (scanf("%d", &num) != EOF)
printf("%d\n", change_to_pmh_number(num));
return 0;
}
[/quote]
发错了
#include <stdio.h>
int main(void)
{
int arr[10];
arr[5] = 10;
for (int i = 0; i < 10; i++)
printf("%d\n", arr[i]);
return 0;
}
#include <stdio.h>
#include <math.h>
int change_to_pmh_number(int num)
{
int i = 0;
int tmp, result = 0;
while (num) {
tmp = num%10;
if(tmp % 2 != 0)
num += 1;
result = (num % 10) * pow(10,i) + result;
i++;
num /= 10;
}
return result;
}
int main( void )
{
int num;
while (scanf("%d", &num) != EOF)
printf("%d\n", change_to_pmh_number(num));
return 0;
}