zoukankan      html  css  js  c++  java
  • 第四次实验报告

    c语言程序报告

    姓名:吴波     实验地点:第一教学楼514教室     实验时间:4月30日

    实验项目:

    1、编写由三角形三边求面积的函数

    2、编写求N阶乘的函数

    3、求两个整数的最大公约数

    4、打印输出三角形

    5、求500以内的所有亲密数对

    一、实验目的与要求:

    •编写由三角形三边求面积的函数

    1、调用area()函数求三角形的面积;
    2、在求面积函数中运用海伦公式;

    •编写求N的阶层

    1、定义符号常量;
    2、使用长整型变量存放累乘积;
    3、在函数中,使用局部静态变量存放累乘积;
    4、使用全局变量存放累乘积;

    •求两个整数的最大公约数

    1、调用gcd()函数求两个整数的最大公约数;
    2、掌握辗转相除法求两个整数的最大公约数;

    •打印输出的指定图形

    1、调用trangle()函数输出三角形;
    2、在trangle()函数中用for循环的嵌套输出指定的结果;

    •模块化程序设计

    1、掌握C语言中定义函数的方法;
    2、掌握通过值传递调用函数的方法。

    二、实验内容

    6.4.1.1实验练习:

    问题描述:编写程序,从键盘输入三角形的3条边,调用三角形函数求出其面积,并输出结果。流程图如下:

    程序流程图:

    实验:

    #include<stdio.h>
    #include<math.h>
    float area(float a,float b,float c)
    {
    	float s,p,area;
    	s=(a+b+c)/2;
    	p=s*(s-a)*(s-b)*(s-c);
    	area=sqrt(p);
    	return (area);
    }
    main()
    {
    	float x,y,z,ts;
    	printf("请输入三角形三条边长:");
    	scanf("%f%f%f",&x,&y,&z);
    	ts=area(x,y,z);
    	if(x+y>z&&x+z>y&&y+z>x)
    	printf("area=%f
    ",ts);
    	else
    	printf("输入有误");
    }
    
    问题分析:主要是判断是否构成三角形有点难度,其他较简单。

    程序运行图:

    6.4.1.2实验练习:

    问题描述:编写函数,求出从主调函数传来的数值i的阶乘值,然后将其传出主调函数并输出。

    程序流程图:

    实验:

    
    #include<stdio.h>
    int N=5;
    long function(int i)
    {
    	static long f=1;
    	f=f*i;
    	return f;
    }
    main()
    {
    	long product;
    	int i;
    	for(i=1;i<=N;i++)
    	{
    		product=function(i);
    		printf("%d的阶乘是:%d
    ",i,product);
    	}
    }
    
    问题分析:无

    程序运行图:

    6.4.1.3实验练习:

    问题描述:编写程序,从键盘输入两个整数,调用gcd()函数求它们的最大公约数,并输出结果。流程图如下:

    程序流程图:

    实验:

    #include<stdio.h>
    int gcd(int a,int b)
    {
    	int temp;
    	int remainder;
    	if(a<b)
    	{
         temp=a;
         a=b;
         b=temp;
    	}
    
    	remainder=a%b;
    	while(remainder!=0)
    	{	
    		a=b;
    		b=remainder;
    		remainder=a%b;
    	}
    	return b;
    }
    main()
    {
    	int x,y;
    	int fac;
    	printf("请输入两个整数:");
    	scanf("%d%d",&x,&y); 
    	fac=gcd(x,y);
    	printf("The great common divisor is:%d",fac);
    }
    
    问题分析:按照书上的代码输出时会一直循环,开始是在while里加了break之后能输出出来,但有些结果会有一定错误,在问过老师后,把remainder=a%b;加入到循环之后,运行结果正确无误。

    程序运行图:

    6.4.1.4实验练习:

    问题描述:输入整数n,输出高度为n的等边三角形。

    程序流程图:

    实验:

    #include<stdio.h>
    void trangle(int n)
    {
    	int i,j,k;
    	for(i=1;i<=n;i++)
    	{   for(j=i;j<=n;j++)
    		printf(" ");
    		for(k=1;k<=2*i-1;k++)
    		printf("*");
    		putchar('
    ');
    	}
    }
    main()
    {
    	int n;
    	printf("请输入一个整数n:");
    	scanf("%d",&n);
    	printf("
    ");
    	trangle(n);
    }
    
    
    问题分析:这个因为以前做过多次,所以我没有按照书上所提示的完成而是运用以前的方法来做,结果输出无误。

    程序运行图:

    6.4.2.1实验练习:

    问题描述:若正整数A的所有因子(包括1但不包括自身,下同)之和为B,而B的因子之和为A,则称A和B为一对亲密数。例如,6的因子之和为1+2+3=6,因此6与6为一对亲密数(即6自身构成一对亲密数);又如,220的因子之和为1+2+4+5+10+11+20+22+44+55+110=284,而284的因子之和为1+2+4+71+142=220,因此,220与284为一对亲密数。求500以内的所有的亲密数对。

    程序分析图:

    实验:

    #include<stdio.h>
    int facsum(int m)
    {
    	int sum=1,f=2;
    	while(f<=m/2)
    	{
    		if(m%f==0)
    		{
    		sum=sum+f;
    		f=f+1;
    	}
    		else
    		f=f+1;
    	 } 
    	 return sum;
    }
    main()
    {
    	int m=3,n,k;
    	while(m<=500)
    	{
    		n=facsum(m);
    		k=facsum(n);
    		if(m==k&&m<=n)
    		{
    		printf("%d,%d
    ",m,n);
    		m++;
    	}
    		else
    		m++;
    	}
    }
    
    问题分析:无太大问题,小问题已解决。
    实验运行图:

    实验小结:

           这次实验的数量不多,但像辗转相除法和求亲密对数的这些方法对我们来说是非常有用的,最大的问题就是我做题的时候总是会先看流程图,因为看流程图我就很快就能做出来,毕竟一些难的公式,和运算方法,都在里面,我感觉我还是太依赖流程图了,做不出来的时候,第一反应就是看流程图,而不是自己思考;以后我遇到问题,尽量自己先做一下,然后在看流程图。

  • 相关阅读:
    flink 读取kafka 数据,partition分配
    Flink 报错 "Could not find a suitable table factory for 'org.apache.flink.table.factories.StreamTableSourceFactory' in the classpath"
    flume接收http请求,并将数据写到kafka
    【翻译】Flume 1.8.0 User Guide(用户指南) Processors
    【翻译】Flume 1.8.0 User Guide(用户指南) Channel
    【翻译】Flume 1.8.0 User Guide(用户指南) Sink
    【翻译】Flume 1.8.0 User Guide(用户指南) source
    【翻译】Flume 1.8.0 User Guide(用户指南)
    Apache Flink 简单安装
    Java之使用IDE
  • 原文地址:https://www.cnblogs.com/ganyiwubo/p/10810063.html
Copyright © 2011-2022 走看看