C语言I博客作业11

这个作业属于那个课程 C语言程序设计II
这个作业要求在哪里 C语言I作业11
我在这个课程的目标是 掌握C语言
这个作业在那个具体方面帮助我实现目标 对函数和循环语句的练习
参考文献 CSDN

1.PTA实验作业

1.1 统计某类完全平方数

本题要求实现一个函数,判断任一给定整数N是否满足条件:它是完全平方数,又至少有两位数字相同,如144、676等。

函数接口定义:

int IsTheNumber ( const int N );

其中N是用户传入的参数。如果N满足条件,则该函数必须返回1,否则返回0。

裁判测试程序样例:

#include <stdio.h>
#include <math.h>

int IsTheNumber ( const int N );

int main()
{
    int n1, n2, i, cnt;
	
    scanf("%d %d", &n1, &n2);
    cnt = 0;
    for ( i=n1; i<=n2; i++ ) {
        if ( IsTheNumber(i) )
            cnt++;
    }
    printf("cnt = %d\n", cnt);

    return 0;
}

/* 你的代码将被嵌在这里 */

输入样例:

105 500

输出样例:

cnt = 6
1.1.1数据处理

数据表达:本题用了三个整型变量,r用来存放开平方后的数,m用来计算r的平方,result用来控制返回的数字,保证只有一个return返回,减少出错的可能性;

数据处理:
伪代码

将N传入函数中
初始化result
r=N的开平方                       
m=r的平方;
if N与m相等;
则使用一个数组
当m大于0时;
m对10取余;
将取出来的数对应的数组空间中加一
if某个对应空间的数字有两个
Output(b+c);输出一个字符并空格;
m--;
while循环结束后令m=a-1;a=a-1;并换行;后再次执行for循环;
End。
1.1.2实验代码截图

1.1.3 造测试数据
输入数据 输出数据 说明
105 500 cnt = 6 题目的测试样例
120 999 cnt = 8 随机数
500 1111 cnt = 2 随机数
1.1.4 PTA提交列表及说明

提交列表说明:

1.答案正确:此题一次就过了,但我还是了强制转换等方法也对了。

1.2 统计各位数字之和是5的数

本题要求实现两个函数:一个函数判断给定正整数的各位数字之和是否等于5;另一个函数统计给定区间内有多少个满足上述要求的整数,并计算这些整数的和。

函数接口定义:

int is( int number );
void count_sum( int a, int b );

函数is判断number的各位数字之和是否等于5,是则返回1,否则返回0。

函数count_sum利用函数is统计给定区间[a, b]内有多少个满足上述要求(即令is返回1)的整数,并计算这些整数的和。最后按照格式

count = 满足条件的整数个数, sum = 这些整数的和
进行输出。题目保证0<a≤b≤10000。

裁判测试程序样例:

#include <stdio.h>

int is( int number );
void count_sum( int a, int b );

int main()
{
    int a, b;

    scanf("%d %d", &a, &b);
    if (is(a)) printf("%d is counted.\n", a);
    if (is(b)) printf("%d is counted.\n", b);
    count_sum(a, b);

    return 0;
}

/* 你的代码将被嵌在这里 */

输入样例:

104 999

输出样例:

104 is counted.
count = 15, sum = 3720
1.2.1 数据处理

数据表达:本题用了五个整型变量,i,j用来实行循环;n为输入的指数;a用来存放2的n次方-1;flag用来看是否有梅森数
数据处理:
伪代码

对a和falg初始化;
Inout (n);
if(n=1)
output(None);
for(int i=2;i<=n;i++)输入2到n之间的数
a=pow(2,i)-1;
for(int j=2;j<=a/2;j++)输入2到a/2之间的数并用(a%j==0)进行判断是否为素数
if不为素数flag++;
if为素数
output(a)并换行;
再重新对falg进行初始化;
End
1.2.2 实验代码截图

1.2.3 造测试数据
输入数据 输出数据 说明
6 题目的测试样例
13 随机数
21 随机数
1.2.4 PTA提交列表及说明

提交列表说明:
1.编译错误:失误,少打了个;号。

2.代码互评

同学代码截图
自己代码截图

3.学习总结

3.1 学习进度条
周/日期 这周所花的时间 代码行 学到的知识点简介 目前比较迷惑的问题
7 10 小时 235 循环语句for的使用以及格式
8 8小时 197 定义全局变量
9 17小时 537 函数的调用
10 16小时 411 数据类型的回顾
11 24小时 1089 数组以及一些算法
12 8小时 453 结构体
13 5小时 371 冒泡加sort
14 11小时 401 define 精度的误差
3.2 累积代码行和博客字数

3.3 学习内容总结和感悟
3.3.1 学习内容总结

3.3.2 学习体会

通过姐一元二次方程这道题,我发现我看题还是不过仔细,很粗心的一直没写出这道题,而且一些小的知识点我也不会,就像c语言中由于精确度的问题,实数不能与0进行比较,后续我还有许多需要改进的地方,如认真读题多学习等。

posted @ 2019-12-05 21:38  李定鸿  阅读(245)  评论(1编辑  收藏  举报