c++ 改错(航电1013)

来源:百度知道 编辑:UC知道 时间:2024/09/24 00:59:32
#include<iostream>
using namespace std;
int main()
{
int n;
while(cin>>n)
{
if(n==0) break;
else
{
while(n>=10)
{
n=n%10+n/10;
}
}
cout<<n<<endl;
}

return 0;
}
/*
#include<iostream>
using namespace std;
int main()
{
int n;
int a[100];
int i=0;
while(cin>>n)
{
if(n==0) break;
else
{
while(n>=10)
{
n=n%10+n/10;
}
}
a[i]=n;
i++;

}
int j=i;
for(i=0;i<j;i++)
cout<<a[i]<<endl;
return 0;
}

*/

帮我看看这两个程序(航电1013)
为什么提交的时候是错误的。。。。帮忙改一下??

我怀疑给你的初始值可能超出整数范围!
我的代码:没注释!过了!
#include<iostream>
using namespace std;
const int MAX=10000;
int change(int sum)
{
int x = 0;
while(sum >= 10)
{
x += sum % 10;
sum /= 10;
}
x += sum;
return x;
}
int main()
{
char num[MAX];
int i,len,sum;
while(scanf("%s",&num) && strcmp(num,"0"))
{
sum = 0;
len = strlen(num);
for(i=0; i<len; i++)
{
sum += num[i] - '0';
}
while(sum >= 10)
{
sum = change(sum);
}
printf("%d\n", sum);
}
return 0;
}
唉!缩进又没了!你在编译器上运行一下……

我运行没出错啊,你用的什么编辑器啊,是不是少了个system("pause");啊

以后最好把问题贴上来,大家找你的问题也不一定找得着。
你这是 杭电 ACM 1013 题?
仔细审题吧
The digital root