c++ 程序 统计一个字符串内的正整数和负整数个数
来源:互联网 发布:JS在图片上录入文字 编辑:程序博客网 时间:2024/06/01 10:46
昨天在CSDN http://topic.csdn.net/u/20090605/15/1cdff9e8-b8a5-4a9c-83e3-13d547c20bcd.html?seed=1509343730 看到一个人请求帮助写程序,我就写了一个给他回复了。
我的思路是输入一个字符串,然后把字符类元素替换为空格,然后统计里面的数字,根据负号判断是否是负数。另外为了求得总和,必须把字符串里面的数字序列转换为数值才行,用到求幂函数。为此需要统计有几个连续的数字,方可知道多少次幂。下面有注释。
/*输入一串字符,统计(输出)其中的正整数和负整数个数以及所有正整数的平均值 */
/* Developed by Wanggang (c)2009 qduwg@163.com QQ:987359426*/
#include <iostream>
#include <string>
#include <cmath>
using namespace std;
int main()
{
string s;
int m,n,i,j,k,p,q,f=1,t=0,neg=0,pos=0;
cin>>s;
m=strlen(s.c_str());
for(i=0;i <m;i++) //把非数字字符替换为空格
{
if(isalpha(s[i]))
s[i]=' ';
}
cout < <s < <endl;
i=0;
while(i <m)
{ k=0;
while(1)
{if(s[i]==' ')
i++;
else
break;
}
p=i; //记录非空格起点,即有数字开始了。
if(s[i]=='-') //判断是否是负号
{
if(isdigit(s[i+1]))//还要判断负号后面有没有数字,否则不算一个负数。
neg++;
i=i+1;
while(s[i]!=' '&&i <m)
i++; //需要把指针移到此数后面。
/*k=i-p; //如果统计负数的总和,可以加上此段代码。
for(j=p;j <i;j++)
{n=s[j]-30;
t=t+pow(n,k--);
}
k=0;*/
}
else //否则就是正数
{while(isdigit(s[i])) //为了统计正数位数
i++;
pos++;
k=i-p; //计算正数位数,下面要用。
for(j=p;j <i;j++) //为了转换为数值,需要幂函数
{n=s[j]-0x30;
t=t+n*pow(10,--k); //位数k用在这里。
}
k=0;
}
i++;
}
cout < <" 正整数个数" < <pos < <"正数平均值" < <t/pos;
return 0;
}
- c++ 程序 统计一个字符串内的正整数和负整数个数
- C 将一个数字字符串转换成该字符串对应的数字(包括正整数、负整数)
- 读入一系列整数,统计出正整数个数i和负整数个数j,读入0则结束
- 读入一系列整数,统计出正整数个数及负整数个数,读入0就结束
- 将一个数字字符串转换成该字符串对应的数字(包括正整数、负整数)
- 将一个数字字符串转换成该字符串对应的数字(包括正整数、负整数)
- 【C语言】编写一个函数,将一个数字字符串转换成该字符串对应的数字(包括正整数、负整数)
- 【c语言】编写一个函数,将一个数字字符串转换成该字符串对应的数字(包括正整数、负整数)
- 【C语言】编写一个函数,将一个数字字符串转换成该字符串对应的数字(包括正整数、负整数)。
- C++/CLR,C#只允许输入整数(正整数和负整数)的文本框(TextBox)
- 一个包含正整数和负整数的数组,找出和最大的子串.
- 编写一个函数,将一个数字字符串转换成该字符串对应的数字(包括正整数、负整数)
- 编写一个函数,将一个数字字符串转换成该字符串对应的数字(包括正整数、负整数)
- 编写一个函数,将一个数字字符串转换成该字符串对应的数字(包括正整数,负整数)
- int my_atof(char *str) 将一个数字字符串转换成该字符串对应的数字(包括正整数、负整数)
- 验证“负整数和正整数余运算”的语法法则
- 输入一个字符串内有数字和非数字字符,将连续的数字作为一个整数,存到数组a中,统计整数的个数,并输出这些数
- C 输入一个字符串,将其中连续的数字作为一个整数存到一数组中,统计整数个数并输出这些整数
- PicturesBox实现保存的代码
- 随笔090606
- python 介绍
- CPU支持虚拟化技术的CPU型号
- VC开发辅助工具大收集
- c++ 程序 统计一个字符串内的正整数和负整数个数
- MPC8572地址空间解读
- gdb保存断点信息问题
- assert() c++ 使用方法
- Xtreme.Toolkit.Pro v11.2.1 汉化方法及全过程
- MYSQL常用查命令:
- mysql alter 语句用法,添加、修改、删除字段等
- MSComm串口控件使用详解(转)
- 双ADSL双局域网合并共享