孩子,for循环里你用i做下标,a[i]的值一直是未定义的随机数。
先看for循环上面的while循环:当b只是个位数a[i]= 这个个位数。然后i++;比如输入3262。a[3] = 3,这个时候i是4;
问题来了,for循环里你一直取a[4]的值,而这个值是未定义的。
修改for循环
for (int m = 0; m < i; m++)
{
if (a[m] % 2 == 0)
sum += a[m];
}
#include
using namespace std;
int dight(const int num)
{
int sum = 0;
for(int i = 10;(num%i)/(i/10);i*=10)
if(!(((num%i)/(i/10))%2))
sum+=(num%i)/(i/10);
return sum;
}
int main()
{
cout<return 0;
}
//看看是不是你要的。。
//main函数自己实现吧
#include
using namespace std;
int main()
{
int b;
while ( cin >> b && b!=0 )
{
int sum=0,n;
while( b )
{
n=b%10;
if ( n%2 == 0 )
sum += n ;
b/=10;
}
cout << sum <}
//system("pause");
return 0;
}
for (int m = 0; m < i; m++)
{
if (a[i] % 2 == 0)
sum += a[i];
}
改成
for (int m = 0; m < i; m++)
{
if (a[m] % 2 == 0)
sum += a[m];
}