例题一:
#include <iostream>
int main()
{
//将字符串里的数字提取出来,计算各个数字的和
//例如abc12def45qwe67666
std::string str="";
int num=0;
int result=0;
std::cout<<"请输入字符串:"<<std::endl;
std::cin>>str;
for (int i = 0; i < str.length(); i++)
{
//是数字
if (str[i] >='0'&&str[i]<='9')
{
//当前数字
//每多往后找到一个数字都要将原来结果*10再+当前数字
num = num*10+(str[i]-'0');
}
else
{
//结果加上当前的数字
result +=num;
//数字组合被字母中断,则重新计算
num=0;
}
}
if (num!=0)
{
//有可能字符串以数字结尾,导致最后一个数字未被计算进去
result +=num;
}
std::cout<<"result="<<result<<std::endl;
return 0;
}
例题二:
#include <iostream>
//求兔子个数 函数永远只有1个返回值
int num1(int head,int feet)
{
int i=0;//兔
for ( ; i <=head; i++)
{
if (4*i+2*(head-i)==feet)
{
//兔子数量
return i;
}
}
//意外情况
return -1;
}
int main()
{
//编写函数计算鸡兔同笼问题(从键盘输入头和脚数量,计算鸡和兔数量)
int head=0;
int feet=0;
int x=0;//鸡
int y=0;//兔
std::cout<<"请输入头和脚的数量"<<std::endl;
std::cin >>head >>feet;
if (feet%2 ||feet<2*head ||feet >4*head)
{
std::cout<<"输入有误"<<std::endl;
}
else
{
y=num1(head,feet);
std::cout<<"有"<<y<<"只兔子"<<std::endl;
std::cout<<"有"<<head-y<<"只鸡"<<std::endl;
}
return 0;
}