谭浩强C程序设计第三版习题10.16我的C++解答,错误以大堆,但不知道错在哪里,请教!!
我在VC++6.0和Dev-C++上都试过。代码如下:
(根据二楼兄弟的提示,做了部分修改,但问题依然存在)
程序代码:#include<iostream>
#include<string>
#include<math.h>
#include<string.h>
#define N 20
using namespace std;
int main()
{
string str;
int lenstr=0,integer[N],nint=0,j=0;
cout<<"输入一个乱序的字符串"<<endl;
cin>>str;
lenstr=str.length();
for(int i=0,flagint=0;i<lenstr;i++)
{
if(str[i]>='0'&&str[i]<='9') flagint++;
else flagint=0;
if( flagint>1&& ( !(str[i]>='0'&&str[i]<='9') ||str[i+1]!='\0') )
{
int tempint=0;
for(int k=0;k<flagint;k++)
tempint+= (str[i-k]-'0') * pow(10,k);
integer[j++]=tempint;
}
}
cout<<“字符串:”<<str<<endl;
cout<<"一共有"<<j<<"个连续数字"<<'\n';
for(int i=0;i<j;i++)
cout<<integer[i]<<'\t';
cout<<endl;
return 0;
}[ 本帖最后由 陈小草 于 2009-10-27 22:39 编辑 ]









