zoukankan      html  css  js  c++  java
  • 第七周编程总结

    7-1 生成3的乘方表 (15 分)

    输入一个非负整数n,生成一张3的乘方表,输出3​0​​~3​n​​的值。可调用幂函数计算3的乘方

    1).实验代码

    #include<stdio.h>
    #include<math.h>
    int main()
    {
      int n,y,i;
      scanf("%d",&n);
      for(i=0;i<=n;i++)
      {
        y=pow(3,i);
         printf("pow(3,%d) = %d
    ",i,y);     
      }
      return 0;  
    }
    

    2). 设计思路

    第一步:定义变量
    第二步:输入变量
    第三步:调用for语句,调用库函数
    第四步:计算
    第五步:输出答案

    3).本题调试过程碰到的问题及解决方法

    问题:输出的格式错误
    解决方法:按照输出样例重新输出

    4).运行结果截图

    7-2 求平方根序列前N项和 (15 分)

    本题要求编写程序,计算平方根序列√​1​​​+√​2​​​+√​3​​​+⋯的前N项之和。可包含头文件math.h,并调用sqrt函数求平方根。

    1)实验代码

    #include<stdio.h>
    #include<math.h>
    int main()
    {
      int N,i;
      double sum;
      scanf("%d",&N);
      sum=0;  
      for(i=1;i<=N;i++)
      {
        sum+=sqrt(i);    
      }
      printf("sum = %.2f",sum);
      return 0;  
    }
    

    2).设计思路

    第一步:定义变量
    第二步:输入实数
    第三步:调用for语句,调用库函数
    第四步:计算每一项的平方根,累加求和
    第五步:输出答案

    3).本题调试过程碰到的问题及解决方法

    问题:没有按照题目要求保留来两位小数
    解决方法:输出时答案保留两位小数

    4).运行结果截图

    7-3 求幂之和 (15 分)

    本题要求编写程序,计算sum=2​1​​+2​2​​+2​3​​+⋯+2​n​​。可以调用pow函数求幂。

    1).实验代码

    #include<stdio.h>
    #include<math.h>
    int main()
    {
      int N,i,result;
      scanf("%d",&N);
      result=0;
      for(i=1;i<=N;i++)
      {
     result+=pow(2,i);
      }
      printf("result = %d",result);
      return 0;  
    }
    

    2).设计思路

    第一步:定义变量
    第二步:调用for语句,调用库函数
    第三步:累加求和
    第四步:输出答案

    3).本题调试过程碰到的问题及解决方法

    问题:漏掉了取地址符号
    解决方法:重新添加取地址符号

    4).运行结果截图

    7-4 求组合数 (15 分)

    本题要求编写程序,根据公式C​n​m​​=​m!(n−m)!​​n!​​算出从n个不同元素中取出m个元素(m≤n)的组合数。

    建议定义和调用函数fact(n)计算n!,其中n的类型是int,函数类型是double。

    1).实验代码

    #include<stdio.h>
    double fact(int n);
    int main(void)
    {
      int n,m,i;
      double result;
      scanf("%d %d",&m,&n);
      result=1;
      for(i=0;i<=n;i++){
      result=fact(n)/(fact(m)*fact(n-m));
      }
      printf("result = %.0f",result); 
      return 0;  
    }
    double fact (int n)
    { 
      int i;
      double product;  
      product=1;  
      for(i=1;i<=n;i++)
      {
        product=product*i;    
      }
         return product;     
    }
    

    2).设计思路

    第一步:自定义函数声明,定义变量
    第二步:输入变量
    第三步:调用for语句
    第四步:计算
    第五步:定义求阶乘的函数

    3).本题调试过程碰到的问题及解决方法

    问题:未定义求阶乘的函数
    解决方法:定义一个求阶乘的函数

    4).运行结果截图

    7-5 验证“哥德巴赫猜想” (20 分)

    数学领域著名的“哥德巴赫猜想”的大致意思是:任何一个大于2的偶数总能表示为两个素数之和。比如:24=5+19,其中5和19都是素数。本实验的任务是设计一个程序,验证20亿以内的偶数都可以分解成两个素数之和

    1).实验代码

    #include<stdio.h>
    #include<math.h>
    int isprime(int N);
    int main() 
    {
    	int i,N;	
    	scanf("%d",&N);		
    	for(i=2;i<N;i++){	
    	if(isprime(i)&&isprime(N-i))	 		
    		{		
    		printf("%d = %d + %d",N,i,N-i);		
    		return 0;
    			}	
    	}
    	return 0;	
    }
    int isprime(int x)
    {
    	for(int i=2;i<=sqrt(x);i++){
    	    if(x%i==0)
    	    return 0;}	    
    	    return 1;	   	    
    }}  
    

    2).设计思路

    第一步:自定义函数声明,定义变量
    第二步:输入变量
    第三步:调用for语句,if语句
    第四步:判断素数
    第五步:定义判断素数的函数

    3).本题调试过程碰到的问题及解决方法

    问题:辨别两个数为素数错误
    解决方法:添加逻辑语言使条件正确

    4).运行结果截图

  • 相关阅读:
    Linux/Ubuntu tree 命令以树形结构显示文件夹目录结构
    apt-get install的默认安装路径
    error: (-215:Assertion failed) !_src.empty() in function 'cv::cvtColor'
    利用keras进行手写数字识别模型训练,并输出训练准确度
    OpenCV:图像的合并和切分
    OpenCV:图像的按位运算
    OpenCV:增加和减少图像的亮度,图像的加减法
    OpenCV:获取图像当中某一点的坐标
    OpenCV:图像的裁剪
    OpenCV:图像的水平、垂直、水平垂直翻转
  • 原文地址:https://www.cnblogs.com/lmcmha/p/10160530.html
Copyright © 2011-2022 走看看