C++ 奇怪的信 编程 求大神看我程序的错

2025-03-23 15:19:42
推荐回答(4个)
回答1:

孩子,for循环里你用i做下标,a[i]的值一直是未定义的随机数。

  1. 先看for循环上面的while循环:当b只是个位数a[i]= 这个个位数。然后i++;比如输入3262。a[3] =     3,这个时候i是4;

  2. 问题来了,for循环里你一直取a[4]的值,而这个值是未定义的。

  3. 修改for循环

    for (int m = 0; m < i; m++)
     {
      if (a[m] % 2 == 0)
       sum += a[m];
     }

回答2:

#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函数自己实现吧

回答3:

#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;
}

回答4:

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];
}