信息学奥赛一本通例题2.8~2.13

例2.8 利用getchar函数接收键盘输入。

#include
#include
using namespace std;
int main()
{
      
  char ch;
  ch=getchar();//读入字符
  cout<<"input="<<ch<<endl;
}

例2.9 利用putchar 函数输出字符。

#include
#include
using namespace std;
int main()
{
     
	char c='B'; //定义字符变量c并赋值'B'
	putchar(c); //输出该字符
	putchar('\x42');//用转义字符输出字母'B'
	putchar(0x42);//用16进制ASCII码值输出字母'B'
	putchar(66);//用10进制ASCII码值输出字母'B'
}

运行结果:BBBB

例2.12

某幼儿园里,有5个小朋友编号为1,2,3,4,5,他们按自己的编号顺序围坐在一张圆桌旁。他们身上都有若干个糖果(键盘输入),现在他们做一个分糖果游戏。从1号小朋友开始,将自己的糖果均分三份(如果有多余的糖果,则立即吃掉),自己留一份,其余两份分给他的相邻的两个小朋友。接着2号、3号、4号、5号小朋友同样这么做。问一轮后,每个小朋友手上分别有多少糖果。

【分析】题目中有5位小朋友,他们初始时糖果的数目不确定,用a,b,c,d,e分别存储5个小朋友的糖果数,初始值由键盘输入。
  程序如下:

#include
using namespace std;
int main()
{
     
   int a,b,c,d,e;
   scanf("%d%d%d%d%d",&a,&b,&c,&d,&e);
   a=a/3;b=b+a;e=e+a;//1号小朋友分糖
    b=b/3;c=c+b;a=a+b;//2号小朋友分糖
    c=c/3;d=d+c;b=b+c;//3号小朋友分糖
   d=d/3;e=e+d;c=c+d;//4号小朋友分糖
   e=e/3;a=a+e;d=d+e;//5号小朋友分糖
   printf("%5d%5d%5d%5d%5d\n",a,b,c,d,e); //%5d按5位宽度输出
   return 0;
}

运行结果:
输入:8 9 10 11 12
输出: 11 7 9 11 6

例2.13

输入一个三位数,要求把这个数的百位数与个位数对调,输出对调后的数。

【分析】先求出自然数的个位、十位、百位,然后个位与百位对调。
  程序如下:

#include
using namespace std;
int main()
{
       
	int a,b,c,m,n;
   cin>>m;//输入一个三位数
   a=m/100;//百位数
   b=(m/10)%10;//十位数
   c=m%10;//个位数
   n=c*100+b*10+a;//重新组合对调后的数
   cout<<"n="<<n<<endl;//输出结果
}

运行结果:
输入:234
输出:n=432

你可能感兴趣的:(信息学奥赛一本通,c++,c++)