1.模拟二人猜拳游戏:剪刀石头布。
要求:(1)给出选项菜单如下
**********新一局************
1.出剪子
2.出石头
3.出布
*******************************
请输入选择的数字:
根据两个用户输入给出猜拳“战况”。
#include <iostream>
using namespace std;
void check(int x)
{
switch(x)
{
case 1:cout << "出剪子" << endl;break;
case 2:cout << "出石头" << endl;break;
case 3:cout << "出布" << endl;break;
default:cout << "错误:只能从1,2,3中选择!" << endl;
}
}
int main()
{
int a = 0,b= 0,c=3;
cout << "************新一局************" << endl;
cout << " 1.出剪子 " << endl;
cout << " 2.出石头 " << endl;
cout << " 3.出布 " << endl;
cout << "******************************" << endl << endl;
cout << " 开始比赛 " << endl;
cout << "//" << endl;
while (1)
{
cout << "请输入选择的数字" << endl;
cout << "甲方选择:";
cin >> a;
check(a);
cout << "乙方选择:";
cin >> b;
check(b);
cout << "结果:";
/* 方法一:为每一种情况做出判断,比较麻烦 */
// if (a == b)
// {
// cout << "甲乙双方平局!" << endl;
// }
// else
// {
// if (a == 1)
// {
// if (b == 2)cout << "乙方获胜!" << endl;
// else cout << "甲方获胜!" << endl;
// }
// else if (a == 2)
// {
// if (b == 1)cout << "甲方获胜!" << endl;
// else cout << "乙方获胜!" << endl;
// }
// else
// {
// if (b == 1)cout << "乙方获胜!" << endl;
// else cout << "甲方获胜!" << endl;
// }
//
//
// }
/* 方法二:同上 */
// switch( a )
// {
// case 1:
// switch( b )
// {
// case 1:cout << "双方平局。"<< endl;break;
// case 2:cout << "乙方胜。" << endl;break;
// case 3:cout << "甲方胜。" << endl;break;
// default:cout << "error!" << endl;
// }
// case 2:
// switch( b )
// {
// case 1:cout << "甲方胜。" << endl;break;
// case 2:cout << "双方平局。" << endl;break;
// case 3:cout << "乙方胜。" << endl;break;
// default:cout << "error!" << endl;
// }
// case 3:
// switch( b )
// {
// case 1:cout << "乙方胜。" << endl;break;
// case 2:cout << "甲方胜。" << endl;break;
// case 3:cout << "双方平局。" << endl;break;
// default:cout << "error!" << endl;
// }
// default:cout << "error!" << endl;
// }
/* 方法三:比较简单 */
c = b-a;
if ( (c<0) || (c>2) )
{
cout << "error!" << endl;
}
else if (!c)
cout << "甲乙双方平局!" << endl;
else if ( c==2 || c==-1 )
cout << "甲方获胜!" << endl;
else
cout << "乙方获胜!" << endl;
cout <<"继续!进入下一轮。" << endl << endl << "//" << endl;
}
return 0;
}
2.键盘输入一个数,判定:能不能被3、5和7整除,并如果失败输出失败的具体原因。
#include <iostream>
using namespace std;
int main()
{
int i;
while(1)
{
cout << "请输入一个数:" << endl;
cin >> i;
if ( i%3 == 0 )
{
if ( i%5 == 0)
{
if ( i%7 == 0)
{
cout << i << "能被3、5、7整除。" << endl;
}
else cout << i << "只能被3、5整除。" << endl;
}
else
{
if ( i%7 == 0)
{
cout << i << "能被3、7整除。" << endl;
}
else cout << i << "只能被3整除。" << endl;
}
}
else
{
if ( i%5 == 0)
{
if ( i%7 == 0)
{
cout << i << "能被5、7整除。" << endl;
}
else cout << i << "只能被5整除。" << endl;
}
else
{
if ( i%7 == 0)
{
cout << i << "能被7整除。" << endl;
}
else cout << i << "不能被3、5、7整除。" << endl;
}
}
}
return 0;
}
3. 输入某年某月某日,判断这一天是这一年的第几天。
#include <iostream>
using namespace std;
//方法1:利用switch的方式
int main()
{
int year = 0,month = 0,day = 0;
int cnt = 0;//记录第几天,对应英文单词:count(不能直接用,因为是关键字)
cout << "请输入年:";
cin >> year;
while( year <= 0 )
{
cout << "请重新输入年:";
cin >> year;
}
cout << "请输入月:";
cin >> month;
while( ( month < 1 ) || ( month > 12) )
{
cout << "请重新输入月:";
cin >> month;
}
cout << "请输入日:";
cin >> day;
while( ( day < 1 ) || ( day > 31 ) )
{
cout << "请重新输入日:";
cin >> day;
}
switch (month)
{
case 12:cnt += 30;
case 11:cnt += 31;
case 10:cnt += 30;
case 9:cnt += 31;
case 8:cnt += 31;
case 7:cnt += 30;
case 6:cnt += 31;
case 5:cnt += 30;
case 4:cnt += 31;
case 3:
if ( (year%4==0 && year%100!=0) || (year%400==0) )
{
cnt += 29;
}
else
cnt += 28;
case 2:cnt += 31;
case 1:cnt += day;break;
default:cout << "error!" << endl;
}
cout << year << "年" << month << "月" << day << "日是这一年的第" <<
cnt << "天" << endl;
return 0;
}
// //方法2:利用数组的方式
// int main()
// {
// int m[12]={31,28,31,30,31,30,30,31,30,31,30,31};
// int year = 0,month = 0,day = 0;
// int cnt = 0;//记录第几天,对应英文单词:count(不能直接用,因为是关键字)
// cout << "请输入年:";
// cin >> year;
// while( year <= 0 )
// {
// cout << "请重新输入年:";
// cin >> year;
// }
// cout << "请输入月:";
// cin >> month;
// while( ( month < 1 ) || ( month > 12) )
// {
// cout << "请重新输入月:";
// cin >> month;
// }
// cout << "请输入日:";
// cin >> day;
// while( ( day < 1 ) || ( day > 31 ) )
// {
// cout << "请重新输入日:";
// cin >> day;
// }
// // 判断闫年
// if ( (year%4==0 && year%100!=0) || (year%400==0) )
// {
// m[1] = 29;
// }
// else
// {
// for (int i=0;i<month;++i)//注意取值范围
// {
// n += m[i];
// }
// n += day;
// }
// cout << year << "年" << month << "月" << day << "日是这一年的第" <<
// n << "天" << endl;
// return 0;
// }