本帖最后由 Guido 于 2020-10-22 21:23 编辑
1.在不同源文件中编写一些函数:例如:int divisor(int a,int b)
int multiple(int a,int b)
int IsPrime(n)
等等,主函数可以跨文件访问这些函数;
2.编写一个菜单函数:int Menu()
使用puts打印菜单:要求整齐好看
1、求最大公约数
2、求最小公倍数
3、查着素数
0、退出程序.
=============
请选择:
将输入的数值作为返回值返回给主调函数,当返回的数值是0时结束循环,退出进程。当输入的1-3的数字时,快文件访问一些上一题中的真实功能的函数;
3、使用画图软件,对第2题中的多层次的函数调用进行入栈过程绘画。将每个函数所用到的变量和形式参数,在绘图软件中标示出他们的位置;//求两个数的最大公约数,存在则返回最大公约数
#include<stdio.h>
int divisor(int a,int b)//
{
puts("您选择求最大公约数,请输入两个数值");
scanf_s("%d%d", &a, &b);
int n;
a<b?n = a : n = b;//从较小值开始递减,求公约数
while (n)
{
if (a%n == 0 && b%n == 0)
{
printf("%d与%d的最大公约数是%d\n\n", a, b, n);
return 0;
}
n--;
}
printf("%d与%d的最大公约数是%d\n\n", a, b, 1);
return 1;
}
//判断一个数是否是素数,是的话返回1,不是的话返回0
#include<stdio.h>
#include<math.h>
int IsPrime(int a)
{
puts("您选择了查看素数,请输入数值");
scanf_s("%d", &a);
int i = 2;
int n = (int)sqrt(a) + 1;
if (a / 2 == 0)
{
return 0;
}
while (i < n)
{
if (a%i == 0)
{
break;
}
i++;
}
if (i < n)
{ printf("%d不是素数\n\n", a);
return 0;
}
else
{
printf("%d是素数\n\n", a);
return 1;
}
}
#include<stdio.h>
#include"type.h"
int Menu()
{
int a=1, b=1;
int n=1;
puts("1、求最大公约数");
puts("2、求最小公倍");
puts("3、查看素数");
puts("0、退出程序");
puts("===============");
puts("请选择");
scanf_s("%d", &n);
switch (n)
{
case 1:
divisor(a,b);
return n;
break;
case 2:
multiple(a, b);
return n;
break;
case 3:
IsPrime(a);
return n;
break;
case 0:
return n;
break;
default:
puts("输入无效,请重新输入");
}
return n;
}
//求两个数的最小公倍数,返回值为其最小公倍数
#include<stdio.h>
int multiple(int a, int b)
{
puts("您选择了求最小公倍数,请输入两个数值");
scanf_s("%d%d", &a, &b);
int n; //m中存储最小公倍数
a > b ? n = a : n = b;//从两者中较大的值开始递增,依次寻找其最小公倍数
while (n%a != 0 || n%b != 0)
{
n++;
}
printf("%d与%d的最小公倍数是%d\n\n", a, b, n);
return n;
}
#include<stdio.h>
#include"type.h"
int IsPrime(int a, int b);
int IsPrime(int a);
int multiple(int a, int b);
int main()
{
/*divisor(7, 12);*/
/*IsPrime(33);*/
/*multiple(7, 8);*/
while (Menu());
return 0;
}
逆向学习第11天_作业练习及内存跟踪
逆向学习第11天_作业练习及内存跟踪
2.在内存中跟踪并用表格表示出入栈出栈的过程
逆向学习第11天_作业练习及内存跟踪
逆向学习第11天_作业练习及内存跟踪
逆向学习第11天_作业练习及内存跟踪
逆向学习第11天_作业练习及内存跟踪
逆向学习第11天_作业练习及内存跟踪
逆向学习第11天_作业练习及内存跟踪
逆向学习第11天_作业练习及内存跟踪
逆向学习第11天_作业练习及内存跟踪
逆向学习第11天_作业练习及内存跟踪
逆向学习第11天_作业练习及内存跟踪
逆向学习第11天_作业练习及内存跟踪
逆向学习第11天_作业练习及内存跟踪
逆向学习第11天_作业练习及内存跟踪
逆向学习第11天_作业练习及内存跟踪
逆向学习第11天_作业练习及内存跟踪
逆向学习第11天_作业练习及内存跟踪
|