C语言I博客作业11

这个作业属于那个课程 C语言程序设计II
这个作业要求在哪里 https://edu.cnblogs.com/campus/zswxy/SE2019-2/homework/10127
我在这个课程的目标是 编写一个简单耐玩的小游戏
这个作业在那个具体方面帮助我实现目标 PTA作业+苦思冥想
参考文献 百度

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
", cnt);

    return 0;
}

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

输入样例: 105 500 输出样例: cnt = 6

1.1.1数据处理

数据表达:在自定义函数中定义了n,w,e,这三个变量由于const定义的变量具有不可变性,所以用n来表示N,w和e则是普通的 整形变量

数据处理:

START


int IsTheNumber(const int N)

  q=sqrt(N);

        if(q*q==n)     
          {
                 while(N<=0)   
                       
                           w = n / 10;                       
                           e = n% 10;

                  while(N除10的余数余前面的数比较完结束)
                          {
                            if(尾数e与后面的数相同)
                                    return 1;

                             else
                                     w/=10为下次比较做准备;
                            }
                    若没有相同return 0;
           }
          else   //不为平方数
                return0;

     
END

 

1.1.2实验代码截

1.1.3 造测试数据

输入数据 输出数据
100 500 cnt = 7
500 1000 cun = 0
1000 5000 cnt = 19

1.1.4 PTA提交列表及说明

说明:
编译错误:我原先的代码是完全没有问题的,我事先在VS上运行没有任何错误,到PTA上就不行,后来看了一下错误点猜测PTA上可能不允许变量类型的强制转换造成的,后来改了改就好了

 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. ", a); if (is(b)) printf("%d is counted. ", b); count_sum(a, b); return 0; } /* 你的代码将被嵌在这里 */

输入样例: 104 999 输出样例: 104 is counted. count = 15, sum = 3720

1.2.1 数据处理

数据表达:在自定义函数is()中定义了两个整形变量,total,q,分别代表各位数之和和输入数的个数。在自定义函数count_sum()当中重复利用定义了一个整形变量I用来计算sum的值。

数据处理:

START


int is(int n)
{
    while(n<=0时输出)
             {

                  取n的余数q;
                  total += q;
                  n /= 10为下次循环做准备;

              }
     if(各个数字之和total==5)
            n = 1;
    
      else
            n = 0;         
}

void count_sum(int a, int b)
{
       i = a;

       for(i从a开始,b结束,每次自增)
           {
             if( i满足 i()函数)
                  {
                         count++;
                         sum+=i;
                   }
           }
}

     
END

            

1.2.2 实验代码截图

1.2.3 造测试数据

输入数据 输出数据
500 1000 500 is counted.
count = 1, sum = 500
1000 2000 count = 15, sum = 17220
50 500 50 is counted.
500 is counted.
count = 16, sum = 3770

 

1.2.4 PTA提交列表及说明

一次过

2.代码互评

同学代码:

我的代码:

区别:
1.这位同学的代码运用了数组来储存数据
2.这位同学的计算方法也不同

3.学习总结

3.1 学习进度条

3.2 累积代码行和博客字数

 

3.3 学习内容总结和感悟

3.3.1 学习内容总结

3.3.2 学习体会

1.老师一定高估了我们的实力,这周的编程题看到就当场爆炸了,关键是在解一元二次方程的的编写时,明明给的数据全部输出没问题,但就是有那么多测试点错误,果然我就一定是数学不好才这么菜;

2.幸福数,看完就爆炸,没有余地,所以总结就是,这么菜还作ACM的题,这不等于白给吗

原文地址:https://www.cnblogs.com/zjw1324399/p/11991895.html