我的c++程序有错,帮一下!!急!!马上要!!

来源:百度知道 编辑:UC知道 时间:2024/05/19 18:31:30
求输入一个整数(4位)的各位数之和
#include<iostream.h>
int main(void)
{int a,b,c,d,g,f=0;
g=a+b+c+d;
cout<<"请输入一个四位数"<<endl;
cin>>f;
while (a*1000+b*100+c*10+d!=f)
{ a++;b++;c++;d++; }
cout<<"各位数之和为"<<g<<endl;
system("pause");
return 0;
}

void main()
{
int n;
int sum=0;
cout<<"请输入一个4为整数:"<<endl;
cin>>n;
while(n!=0)
{
sum+=n%10;
n=n/10;
}
cout<<"各位数之和为:"<<sum<<endl;
}

你那个程序有错误:
第一:a,b,c,d都未赋初值,就直接++,这样不行。
第二:while循环可能成为死循环。想想你的while循环体内,每次每位都
加1,那就是说你的四位数,将会是1111,2222,3333,……
(假设你的a,b,c,d都赋了初值)。
第三:最后输出g的语句(假设你其他程序是正确的),都没有改变g的值,
就直接输出,那即是你的其他程序是对的,结果还是错的!!

整数位n
千位a=n/1000
百位b=n/100%10
十位c=n/10%10
个位d=n-a*1000-b*100-c*10

和sum=a+b+c+d

变量未定义 自行解决

//---------------------------------------------------------------------------
#include <iostream>

using namespace std;
int main(int argc, char* argv[])
{
int i,sum=0;
cin>>i;
while (i)
{
sum+=i%10;
i/=10;
}
cout<<sum<<endl;
return 0;