#c语言l博客作业11

这个作业属于哪个课程 C语言程序设计ll
这个作业的要求 (https://edu.cnblogs.com/campus/zswxy/SE2019-4/homework/10125)
我在这个课程的目标 灵活运用C语言并且可以编写一些小的程序
这个作业在哪个具体方面帮我实现目标 全局变量、局部变量
参考文献 C语言程序设计、百度

题目一

6-1 统计某类完全平方数

本题要求实现一个函数,判断任一给定整数N是否满足条件:它是完全平方数,又至少有两位数字相同,如144、676等。
裁判测试程序样例:
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.数据表达:定义整型变量k,m,t,flag,运用数组

数据处理:

int IsTheNumber ( const int N );

int main()
{
int n1, n2, i, cnt; 定义变量

 输入n1, n2
cnt = 0;  初始化为0
for ( n1循环到n2 ) { 
    if ( IsTheNumber(i) )
        cnt++; 累加
}
     输出cnt

int IsTheNumber(const int N)
{
int flag = 0 ; 判断返还
int k, m, t;
m = N;
k = sqrt(N);
if(k*k == N)
{
int a[10]={0}; 定义num的长度为10,因为传入的整数的每位数可能是0~9
while( m>0)
{
t = m%10;
for(int i=0; i<10; i++)
{
if(t == i)
a[i]++;
if(a[i] == 2)
{
flag = 1;
跳出
}
}
if( flag )
跳出
m /= 10;
}
}
return flag;
}

2.实验代码截图

#c语言l博客作业11_第1张图片

3.造测试数据

输入数据 输出数据 说明
145 555 cnt=4 4个平方数
300 600 cnt=4 4个平方数
130 676 cnt=6 6个平方数

4.PTA提交列表

#c语言l博客作业11_第2张图片
编译错误:if后面忘记跳出,加上break;

题目二

6-2 统计各位数字之和是5的数

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

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.数据表达:定义整型变量s,t并且都赋值为0

数据处理:

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

int main()
{
定义a,b

输入a,b
if (is(a)) 输出a
if (is(b)) 输出b
count_sum(a, b);

return 0;

}
int is( int n)
{
int s=0,t=0;
while(n!=0){
t=n%10;
n/=10;
s+=t;
}
if(s==5)
return 1;
else
return 0;
}
void count_sum( int a, int b )
{
int sum=0,count=0,i;
从a循环到b
if(is(i)){
count++;
sum+=i;
}
}
输出count,sum
}

2.实验代码截图

#c语言l博客作业11_第3张图片

3.造测试数据

输入数据 输出数据 说明
135 344 count=8,sum=1939 8个满足要求,总和为1939
100 176 count=5,sum=610 6个满足要求,总和为610
400 510 count=3,sum=1311 3个满足要求,总和为1311

4.PTA提交列表

#c语言l博客作业11_第4张图片
编译错误:18行if后面忘了{},添加上去

二.代码互评

我的代码:

#c语言l博客作业11_第5张图片

同学的代码:

#c语言l博客作业11_第6张图片
1.与我不一样,同学定义了二个数组来进行选择
2.我用了个flag帮助判断,同学没有直接用的式子

我的代码:

#c语言l博客作业11_第7张图片

同学的代码:

#c语言l博客作业11_第8张图片
1.开始第一个循环我用的while循环,同学用的do-while,先执行后判断
2.第七行我用的s+=t,运用累加,同学是直接相加

三.学习总结

周/星期 这周所花的时间 代码行 学到的知识点简介 目前比较迷惑的问题
第四周 10h 50 hello world
第五周 4h 80 分段函数
第六周 8h 120 华氏温度与摄氏温度转换 如何更加快捷转换
第七周 12h 180 if-else语句 输入、输出的一些符号
第八周 9h 270 for循环语句 小数点位数的保留
第九周 13h 400 自定义函数 表格和图的一些格式问题
第十周 12h 550 多分支else-if以及字符型 一些字符型表示的运算
第十一周 11h 680 switch语句 返回值被忽略的问题
第十二周 13.5h 815 while、do-while循环语句 while、do-while循环语句与某些数学问题的结合使用
第十三周 11h 910 for语句的嵌套、break和continue语句 for语句说明什么时候可以省略{}
第十四周 13h 1010 仍然为循环语句嵌套
第十五周 14h 1150 全局变量、局部变量 extern扩充
时间 博客字数 代码行数
第四周 200 50
第五周 400 80
第六周 650 120
第七周 1450 180
第八周 2100 270
第九周 2700 400
第十周 3200 550
第十一周 3700 680
第十二周 4100 815
第十三周 4600 910
第十四周 5100 1010
第十五周 5700 1150

#c语言l博客作业11_第9张图片

学习总结和感悟

1.这次学习了静态变量和自动变量
2.四种类型auto自动型、register寄存型、extern外部型、static静态型
3.全局变量可以作用于所有函数,从定义开始到结束
4.感觉这次题目真的挺难的,主要是编程题

思维导图
#c语言l博客作业11_第10张图片

你可能感兴趣的:(#c语言l博客作业11)