The programming summary (Seventh week)

题目1 生成3的乘方表

(1)实验代码

#include <stdio.h>
int main(void)
{
    int n;
    int i;
    int result;
    scanf("%d",&n);
    i=0;
    for (i;i<=n;i++)
    {
        result=pow(3,i);
        printf("pow(3,%d) = %d\n",i,result);
    }
    return 0;
}

(2)设计思路

第一步:定义变量
第二步:输入变量,赋初值
第三步:用for循环
第四步:输出结果

(3)本题调试过程碰到问题及解决办法(3)本题调试过程碰到问题及解决办法

输出内容应在循环中写入,每循环一次,输出一次。

(4)运行结果截图

(考试时间已到,无法获得截图)

题目2 求平方根序列前N项和

(1)实验代码

#include <stdio.h>
#include <math.h>
int main(void)
{
    double a = 1, S = 0;
    int N, i;

    scanf("%d", &N);
    for (i = 0; i < N; i++)
    {
         S = S + sqrt(a);
        a++;
    }
    printf("sum = %.2lf", S);

    return 0;
}

(2)设计思路

第一步:定义变量
第二步:输入变量,赋初值
第三步:用for循环,S每次循环加上sqrt(a)
第四步:输出

(3)本题调试过程碰到问题及解决办法

本题无错误,一次性通过

(4)运行结果截图

(考试时间已到,无法获得截图)

题目3 求幂之和

(1)实验代码

#include<stdio.h>
#include<math.h>
int main(void)
{
    int i, sum, n, result, a;

    scanf("%d", &n);
    a = 0;
    for(i = 1;i <= n;i++)
    {
        sum = pow(2,i);
        a = a+sum;
    }
    printf("result = %d",a);

    return 0;
}

(2)设计思路

第一步:定义math函数,用于pow函数。
第二步:输入变量,赋初值
第三步:用for循环
第四步:输出a

(3)本题调试过程碰到问题及解决办法

本题无错误,一次通过。

(4)运行结果截图

(考试时间已到,无法获得截图)

题目4 求组合数

(1)实验代码

#include<stdio.h>
double fact (int n);

int main(void)
{
    int i, m,n;
    double result;

    scanf("%d %d",&m, &n);

    result=fact(n)/(fact(m)*fact(n-m));

    printf("result = %.0f\n",result);

    return 0;
}

int fact(int n)
{
    int i;
    int product;

    product=1;
    for(i=1;i<=n;i++)
    {
        product=product*i;
    }

    return product;
}

(2)设计思路

第一步:定义fact函数,定义变量
第二步:输入m、n的值
第三步:调用fact函数,计算result
第四步:输出result

(3)本题调试过程碰到问题及解决办法

本题就一些细节问题,不断调试后解决了

(4)运行结果截图

(考试时间已到,无法获得截图)

题目5 验证“哥德巴赫猜想”

(1)实验代码

#include <stdio.h>
#include <math.h>
int prime(int n);

int main(void)
{
    int N;
    scanf("%d", &N);
    for (int i = 2; i < N; i++)
    {
        if (prime(i) && prime(N - i))
        {
            printf("%d = %d + %d\n", N, i, N - i);
            return 0;
        }
    }
    return 0;
}

int prime(int n)
{
    if (n == 1)
        return 0;
    if (n == 2)
        return 1;
    for (int i = 2; i <= sqrt(n); i++)
    {
        if (n%i == 0)
            return 0;
    }
    return 1;
}

(2)设计思路

第一步:定义prime函数,定义变量
第二步:输入变量
第三步:用for循环
第四步:用if语句来判断拆分数是否为素数
第五步:调用自定义函数prime来判断
第六步:输出答案

(3)本题调试过程碰到问题及解决办法

自定义函数中的循环次数为sqrt(n)的原因是:sqrt(n)是循环次数最少,但能包含所有因子的最佳循环次数

(4)运行结果截图

(考试时间已到,无法获得截图)

猜你喜欢

转载自www.cnblogs.com/JingWenxing/p/9862146.html