周报

小结

1.本周C语言教到了结构体

C 数组允许定义可存储相同类型数据项的变量,结构是 C 编程中另一种用户自定义的可用的数据类型,它允许您存储不同类型的数据项。
定义结构
为了定义结构,您必须使用 struct 语句。struct 语句定义了一个包含多个成员的新的数据类型,struct 语句的格式如下:

struct tag { 
    member-list
    member-list 
    member-list  
    ...
} variable-list ;

其中1.tag 是结构体标签。
2.member-list 是标准的变量定义,比如 int i; 或者 float f,或者其他有效的变量定义。
3.variable-list 结构变量,定义在结构的末尾,最后一个分号之前,可以指定一个或多个结构变量。

结构体变量的初始化

和其它类型变量一样,对结构体变量可以在定义时指定初始值。
实例

#include <stdio.h>
struct Books
{
   char  title[50];
   char  author[50];
   char  subject[100];
   int   book_id;
} book = {"C 语言", "RUNOOB", "编程语言", 123456};

2.在pta上练习了函数递归

6-6 判断满足条件的三位数 (15分)
本题要求实现一个函数,统计给定区间内的三位数中有       两位数字相同的完全平方数(如144、676)的个数。
函数接口定义:
int search( int n );
其中传入的参数int n是一个三位数的正整数(最高位数字非0)。函数search返回[101, n]区间内所有满足条件的数的个数。

裁判测试程序样例:

#include <stdio.h>
#include <math.h>
int search( int n );
int main()
{
    int number;
    scanf("%d",&number);
    printf("count=%d\n",search(number));	
    return 0;
}
/* 你的代码将被嵌在这里 */

输入样例:
500
输出样例:
count=6

int search(int n)
{
    int i = 11;
    int t = 0;
    for (; i < sqrt(n); i++) 
    {
        int a, b, c, d;
        d = i * i;
        a = d % 10;
        b = d / 10 % 10;
        c = d / 100;
        if (a == b || a == c || b == c)
        t++;
    }
     return t;
}
6-7 递归求简单交错幂级数的部分和 (15分)

本题要求实现一个函数,计算下列简单交错幂级数的部分和:

f(x,n)=x−x2+x3-x4+…+(-1)n-1xn

 函数接口定义:
double fn( double x, int n );
其中题目保证传入的n是正整数,并且输入输出都在双精度范围内。函数fn应返回上述级数的部分和。建议尝试用递归实现。

裁判测试程序样例:

#include <stdio.h>
double fn( double x, int n );
int main()
{
    double x;
    int n;
    scanf("%lf %d", &x, &n);
    printf("%.2f\n", fn(x,n));
    return 0;
}
/* 你的代码将被嵌在这里 */

输入样例:
0.5 12
输出样例:
0.33

#include <math.h>
double fn( double x, int n )
{
   double s;
   if(n==1)
   return x;
   if(n>=2)
   {
   s=fn(x,n-1)+pow(-1,n-1)*pow(x,n);
   return s;
   }
}

3.递归

语法格式如下:

void recursion()
{
   statements;
   ... ... ...
   recursion(); /* 函数调用自身 */
   ... ... ...
}
int main()
{
   recursion();
} 
数的阶乘

下面的实例使用递归函数计算一个给定的数的阶乘:

实例

#include <stdio.h>
double factorial(int i)//factorial意思是阶乘
{
   if(i <= 1)
   {
      return 1;
   }
   return i * factorial(i - 1);
}
int  main()
{
    int i = 15;
    printf("%d 的阶乘为 %f\n", i, factorial(i));
    return 0;
}
斐波那契数列

下面的实例使用递归函数生成一个给定的数的斐波那契数列:
实例

#include <stdio.h> 
int fibonaci(int i)
{
   if(i == 0)
   {
      return 0;
   }
   if(i == 1)
   {
      return 1;
   }
   return fibonaci(i-1) + fibonaci(i-2);
}
 
int  main()
{
    int i;
    for (i = 0; i < 10; i++)
    {
       printf("%d\t\n", fibonaci(i));
    }
    return 0;
}

采用递归方法来解决问题,必须符合以下三个条件:
1、可以把要解决的问题转化为一个新问题,而这个新的问题的解决方法仍与原来的解决方法相同,只是所处理的对象有规律地递增或递减。
说明:解决问题的方法相同,调用函数的参数每次不同(有规律的递增或递减),如果没有规律也就不能适用递归调用。
2、可以应用这个转化过程使问题得到解决。
说明:使用其他的办法比较麻烦或很难解决,而使用递归的方法可以很好地解决问题。
3、必定要有一个明确的结束递归的条件。
说明:一定要能够在适当的地方结束递归调用。不然可能导致系统崩溃。

4.学习了视频剪辑(因为这个疯狂拖进度)

(完成近代史作业)

5.高数学习

学习了定积分 换元法和分部积分法

6.LeetCode的题慢慢磨吧…

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值