2道acm简单题(2010):1.猜数字游戏;2.字符串提取数字并求和;

//第一题是猜数字的游戏。
//题目:随即产生一个3位的正整数,让你进行猜数字,
//如果猜小了,输出:“猜小了,请继续”。
//如果猜大了,输出:“猜大了,请继续”。
//如果猜对了。输出:“恭喜你,猜对了”。
//不过最多只能猜10次,如果猜了10次还没有猜对,就退出程序,输出:“Bye Bye”。

/*总结:此题最主要的地方就是产生随机数的方法:rand() % N + A, A为起始位,N为数字的总数。例如:随机生成0~10的数字,rand()%(10-0+1)+0;生成1~10的数字:rand()%(10-1+1)+1;生成100~999的数字:rand()%(999-100+1)+100*/
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int main()
{
int r;//记录随机产生的三位数
//srand函数是随机数发生器的初始化函数。原型:void srand(unsigned int seed);
//srand和rand()配合使用产生伪随机数序列。
srand(unsigned(time(NULL)));
//rand函数在产生随机数前,需要系统提供的生成伪随机数序列的种子,rand根据这个种子的值产生一系列随机数。
r = rand() % 900 + 100;
printf("输入一个你猜的数:\n");
int n;
int cnt = 0;
while (~scanf("%d",&n))
{
if (n > r)
{
printf("猜大了,请继续\n");
}
else if (n < r)
{
printf("猜小了,请继续\n");
}
else
{
printf("恭喜你,猜对了\n");
break;//猜对退出
}
cnt++;
if (cnt==9)
{
printf("Bye Bye\n");
break;
}
}

return 0;
}

//第二题:字符串提取数字并求和
//字符串求和。编写函数 FindAndSum,输入一个字符串,把字符串中的数字作为整数进行求和,并输出结果。Sample : 输入:There are some apple.输出:0 。输入:124and 1524 输出:1648 。
#include<iostream>
#include<string>
#include<cctype>
using namespace std;
int FindAndSum(string str)
{
int temp = 0, sum = 0;
for (int i = 0; i < str.length(); i++)
{
if (isdigit(str[i]))
{
//124,首先是1,逐渐乘以10直到遇到字符,乘以了100,在百位,其他位也类似
temp = temp * 10 + str[i] - '0';
}
else
{
sum += temp;
temp = 0;
}
}
return sum;
}

int main()
{
string str;
cout << "输入一个字符串" << endl;
//cin >> str;
getline(cin, str);//不会将末尾的“/n”保存到str中
str += "/n";
cout << FindAndSum(str) << endl;
//下面是测试size和length是否相等
//cout << str.length()<<endl;
//cout << str.size()<<endl;
return 0;
}

参考博客:http://blog.csdn.net/hackbuteer1/article/details/6667026

上一篇:ruby for in 循环中改变i的值无效


下一篇:Node.js 入门手册:那些最流行的 Web 开发框架