第一题:简易计算器
思路:
定义变量后使用while无限循环执行,使用switch语句实现多分支选择。
源代码:
#include <stdio.h>
#include <stdlib.h>
int main()
{
int i = 0;
int j = 0;
int sum = 0;
int select = 0;
while(1)
{
printf("==========================================\n");
printf("计算器---请输入你需要的操作序号\n");
printf("1. + \n");
printf("2. - \n");
printf("3. * \n");
printf("4. / \n");
printf("==========================================\n");
scanf("%d", &select);
printf("请输入计算值");
scanf("%d%d", &i, &j);
switch (select)
{
case 1:
printf("%d+%d=%d\n", i, j, sum=i+j);
break;
case 2:
printf("%d-%d=%d\n", i, j, sum=i-j);
break;
case 3:
printf("%d*%d=%d\n", i, j, sum=i*j);
break;
case 4:
printf("%d/%d=%d\n", i, j, sum=i/j);
break;
default:
printf("输入有误请重新选择!");
break;
}
}
return 0;
}
运行结果:
第二题:从键盘输入一批学生的成绩,计算所有成绩大于60分的平均值和学生个数
思路:
定义变量并且从键盘接收数据,以0为整批成绩输入的结束条件,对每一个成绩进行判断,将所有大于60分的成绩求和。算出平均分并输出。
源代码:
3.
#include <stdio.h>
#include <stdlib.h>
int main()
{
int num,count;
double grade,sum;
count=num=sum=0;
printf("请输入成绩:");
scanf("%lf",&grade);
while(grade>0)
{
sum=sum+grade;
num=num+1;
while(grade>=60)
{
count=count+1;
scanf("%lf",&grade);
}
scanf("%lf",&grade);
}
if(grade==0)
{
printf("average=0,count=0");
}
else
{
printf("平均分:%.2f \n60分以上的人数:%d\n",sum/num,count);
}
return 0;
}
运行结果:
第三题:找1000以内的所有完数
思路:
则需要定义一个变量 i来表示1~1000,然后定义一个变量 j 用来表示因子,定义一个变量 sum 来表示因子相加的和,for循环里对条件进行判断。
什么是完数:即完美数,一个数如果恰好等于除它本身外的因子之和。
什么是因子:如果整数A除B,得出结果是没有余数的整数,就称B是A的因子。eg: 8的因子有1,2,4和8。
源代码:
#include <stdio.h>
#include <stdlib.h>
int main()
{
printf("1000以内的完数:\n");
for(int i = 2;i <= 1000;i++)
{
int sum = 0;
for(int j = 1;j <= i/2;j++)
if(i%j == 0)
{
sum += j;
}
if(sum == i)
{
printf("%d\n",sum);
}
}
return 0;
}
运行结果:
第四题:汉诺塔问题
思路:
定义汉诺塔函数,参数n是圆盘数,A、B、C是3根柱,判断圆盘数,如果等于1,递归条件,直接将A柱上的圆盘移动到C柱上,否者进行递归移动,递归将A柱最上方的n-1个盘子落在B柱,输出将A柱上的圆盘移动到C柱上,也就是将A柱的最小面盘子落在C柱,递归将B柱上的n-1个盘子,落在C柱。
A柱有n个圆盘时,移动次数为2n-1。
源代码:
#include <stdio.h>
#include <stdlib.h>
void Hanio_Step(int n, char A, char B, char C)
{
if (1 == n)
printf("%c->%c\n", A, C);
else
{
Hanio_Step(n-1, A, C, B);
printf("%c->%c", A, C);
Hanio_Step(n-1, B, A, C);
}
}
int main()
{
int n = 0;
printf("请输入汉诺塔层数:");
scanf("%d", &n);
printf("执行步骤:\n");
Hanio_Step(n, 'A', 'B', 'C');
return 0;
}
运行结果:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)