请教一个c++程序

来源:百度知道 编辑:UC知道 时间:2024/06/28 00:27:21
编写一个含iostream.h的c++程序:输入一个整数,求出各位数字之和。我这有一个,但是表头是iostream。要无编译错误!另外,最好能翻译你们编写的程序各行的意思。悬赏100分!好的话,追加!
#include<iostream>
#include<string>
using namespace std;
int main()
{
string s;
int len,sum,i;
cout<<"请输入数字:";
cin>>s;
len=s.size();
sum=0;
for(i=0;i<len;i++)
sum+=s[i]-'0';
cout<<"各位数字之和为:"<<sum<<'\n';
}
如果单单把iostream改成iostream.h是不行的,你们可以用c++来仔细看看~
我不是让你们翻译我程序的各行,是让你们编写一个包含iostream.h的程序

#if _MSC_VER > 1310

#include <iostream> // for io
using namespace std; // standrd name space

#else

#include <iostream.h>
#include <string.h>

#endif

int main()
{
int iNum = 0;
cin>>iNum; // 输入整数

// 方法1:
char szBuf[15];
#if _MSC_VER > 1310
sprintf_s( szBuf, "%d", abs(iNum) );
#else
sprintf( szBuf, "%d", abs(iNum) ); // 将其绝对值格式化到字符串中
#endif

unsigned uLen = strlen( szBuf ); // 得到字符串长度
int iTotal = 0;
for( int i = 0; i<(int)uLen; ++i ) // 循环相加
{
iTotal +=( szBuf[i]-'0' );
}

cout<< iTotal << endl;

// 方法2:
iTotal = 0;
do
{
iTotal += (iNum%10); // 得余数,总是得到最后一位
iNum /= 10; // 除以10将会把最后一位剔除掉
} while ( iNum != 0); // 当最后为0的时候循环就结束了

cout<< iTotal << e