C语言I作业11

问题 回答
这个作业属于那个课程 C语言程序设计II
这个作业要求在哪里 作业要求
我在这个课程的目标是 编程
这个作业在那个具体方面帮助我实现目标 更好的学习c语言
参考文献 简述

1.PTA实验作业(20分/题)

1.16-2 统计各位数字之和是5的数 (20分)

本题要求实现两个函数:一个函数判断给定正整数的各位数字之和是否等于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

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.1.1数据处理

数据表达:定义了整形变量a,b为输入的范围,自定义函数is并定义了整形变量c,d,sum,其中sum为number的每一位相加的和,i为返回值;
自定义函数count_sum并定义了整形变量count,sum,i,其中count为记录满足要求的个数,sum为每一个满足条件的数的和,i用来控制循环。
数据处理:

数据处理:
主函数:
定义a,b为输入的范围

输入范围
if 自定义函数is返回来的值不为0  输出a is counted
if 自定义函数is返回来的值不为0  输出b is counted
自定义函数 count_sum(a, b);

定义函数is:
定义sum,c,d为number的每一位数累加的和且sum=0

while(判断number是否等于0)
{
    c=number%10
    sum+=c
    number/10
}
if判断 (sum是否=5)
是
返回1
else
返回0

定义函数count_sum
定义count用于记录满足条件整数的个数,sum1为满足条件的每一个数累加的和,i为控制循环

for(i=a;i<=b;i++)
{
    {
    if is(a)
    count++
    sum1+=i
    }
    输出count,sum
}

    

1.1.2实验代码截图

C语言I作业11_第1张图片

1.1.3 造测试数据

输入数据 输出数据 说明
104 999 104 is counted. count = 15, sum = 3720 104的各位数字和为5,满足条件的整数个数为15,这些数的和为3720
113 999 113 is counted. count = 14, sum = 3616 113的各位数字和为5,满足条件的整数个数为14,这些数的和为3616
108 255 count = 8, sum = 1372 108各位数字和不为5,满足条件的整数个数为8,和为1372

1.1.4 PTA提交列表及说明

提交列表说明:
编译错误:符号缺少,还有在自定义函数后加尔;
答案正确:调试改正

1.26-1 统计某类完全平方数 (20分)

本题要求实现一个函数,判断任一给定整数N是否满足条件:它是完全平方数,又至少有两位数字相同,如144、676等。
函数接口定义:
int IsTheNumber ( const int N );
其中N是用户传入的参数。如果N满足条件,则该函数必须返回1,否则返回0。
裁判测试程序样例:
#include 
#include 

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.2.1 数据处理

数据表达: 定义了整型变量n1, n2, i, cnt;n1,n2,是输入的参数也是一个范围,i用于循环,cnt用于计数,在IsTheNumber自定义函数中定义了常变量N,在IsTheNumber函数内定义了i,n,一个用于循环一个用于判断,
数据处理

数据处理:
#include
#include
n1,n2为输入的取值范围,i用于循环,cnt用于计数

接收n1,n2
cnt=0
for(i=n1;i<=n2;i++)
{
    判断(if) 自定义函数返回来的值不为零 执行
    cnt++
}
输出cnt

自定义函数:IsTheNumber 定义常变量N
定义m用于数据处理,b用于判断N的位数,n就是输入的整数,定义一个10位的数组p用了收集n的值;
n=N
p[10]={0}
m=sqrt(n)
如果(if) (m*m=n )
执行
{
    while(n)
    {
        b=n%10
        n/=10
        p[b]++
    }
    进入for循环 令i=0,i<9,i自增
    {
    if p[i]>1
        返回1     
    }
} 
    返回0 

1.2.2 实验代码截图

C语言I作业11_第2张图片
C语言I作业11_第3张图片

1.1.3 造测试数据

输入数据 输出数据 说明
101 555 cnt = 6 101-555内有6个完全平方数
188 999 cnt = 6 188-999内有6个完全平方数
288 666 cnt = 3 288-666有3个完全平方数

1.2.4 PTA提交列表及说明

提交列表说明:
答案正确:数组在使用过程中出错,不熟练。

2.代码互评(5分)

同学代码截图

C语言I作业11_第4张图片

自己代码截图

C语言I作业11_第5张图片

  • 两者代码思路差不多,判断和执行的先后顺序不同。

3 学习总结

3.1 学习进度条

周/日期 这周所花的时间 代码行 学习到的知识点简介 目前比较疑惑的问题
第六周 20小时 416行 基本学习C语言
第七周 6小时 153行 进一步了解算法
第八周 21小时 425行 学习了for循环结构,并了解了while循环结构
第九章 17小时 679行 学习了自定义函数
第十周 21小时 453行 学习了if-else,for,while的嵌套。
第十一周 23小时 627行 学习了switch选择结构。
第十二周 23小时 424行 学习了do while。
第十三周 6小时 142行 学习了continue 最近有点烦躁没静下心来学习,整理学过的内容,有些思路乱
第十四周 8小时 210行 选择合适的算法、合理的循环结构,熟练的编写程序

3.2 累积代码行和博客字数

时间 博客字数 代码行
第四周 713 0
第五周 713 0
第六周 1540 416
第七周 2419 569
第八周 3595 994
第九周 4676 1124
第十周 6154 1585
第十一周 7682 2212
第十二周 9142 2658
第十三章 10098 2800
第十四周 10132 3010

C语言I作业11_第6张图片

3.3 学习内容总结和感悟

3.3.1 学习内容总结

C语言I作业11_第7张图片

3.3.2 学习体会

第8次作业开始博客园写的有些敷衍检讨。

你可能感兴趣的:(C语言I作业11)