C语言I博客作业11

陌路散爱 提交于 2019-12-06 21:27:26
这个作业属于哪个课程 C语言程序设计II
这个作业要求在哪里 C语言I博客作业11
我在这个课程的目标是 学习C语言程序设计
这个作业在哪个具体方面帮助我实现目标 掌握各种类型函数的定义、调用和申明,熟悉变量的作用域、生存周期和存储类型
参考文献 百度查阅

PTA实验作业

1.1 统计某类完全平方数 (20分)

本题要求实现一个函数,判断任一给定整数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数据处理

数据表达:定义整形变量n,i,a.双精度浮点型变量m,
数据处理:伪代码

include <stdio.h> //头文件
include <math.h> //头文件

定义整形变量IsTheNumber 将N定义为整形变量

int main()
{
    定义整形变量n1, n2, i, cnt;
    
   输入"%d %d", &n1, &n2
    cnt的初始值为0
    for i=n1 to i<=n2 累加i
    {
        如果 ( IsTheNumber(i) )
            cnt累加;
    }
        输入cnt
    end for
    return 0;
}
int IsTheNumber (const int N) //函数接口
{
    定义整形变量 n,i,a;
    定义双精度浮点型变量 m;
    num[10]初始化为0;
    将整形的(N)开方后的值赋给n;
    将(N)开方的数赋给m;
    将N赋值给a;
    if(a==m*n)
    while(a)
    {
        for(i=0 to i<=9 累加i)
        {
            if(a除以10取余等于i)
            {
                num[i]+=1;
                如果(num[i]>=2)
                返回 1;
            }
             end if
        }
        end for
        a等于a除以10;
    }
    end if
    返回 0;
}

1.1.2 实验代码截图

1.1.3 造测试数据

输入数据 输出数据 说明
144 169 cnt = 1 两个平方数
125 275 cnt = 2 两个5的倍数
25 49 cnt = 0 两个小于100的可开方数

1.1.4 PTA提交列表及说明


1.编译错误:未将for循环中的分号码正确;用到了逗号,导致错误
2.答案正确:将for循环中的逗号改成分号就行了

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<ab≤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
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!