C语言每日一练7.17(C类高能预警)

本文通过C语言实现三个实例:验证级数1+1/2+1/3+...+1/n的发散特性;利用数组计算并展示大数乘法的过程;以及使用二维数组绘制特殊图案。

A类

1. 奎哥有言,级数1+1/2+1/3+...+1/n+...是发散的,而且还说“这个你们可以用C语言验证一下”,那么我们就验证一下吧!

请补全下列代码,要求用户输入一个正整数n,然后计算出1+1/2+1/3+...+1/n

#include <stdio.h>
int main() {
    double result = 0;
    int i, n;
    printf("请输入n:");
    scanf("%d", &n);
    for (i = 1; i <= n; i++) {
        result += ____________________________
    }
    printf("%lf\n", result);
    return 0;
}

B类

2.下列程序的运行结果为:

#include <stdio.h>
int main() {
    int a[100] = {0};
    int i, j;
    a[0] = 1;
    for (i = 0; i < 5; i++) {
        for (j = 0; j < 99; j++) {
            a[j] *= 2;
        }
        for (j = 0; j < 99; j++) {
            if (a[j] >= 10) {
                a[j+1] += a[j] / 10;
                a[j] %= 10;
            } 
        }
    }
    for(i = 0; i < 5; i++) {
        printf("%d", a[i]);
    }
    return 0;
}

C类

3.请编写一个程序,打印如下图形:

(提示:使用二维数组)

----------------------------------以下为答案--------------------------------------

 

 

 

 

 

 

 

 

 

1.  1.0 / i ;   (注:写成1/i是不对的)

2.  23000

3.

#include <stdio.h>
int main() {
    int a[10][10] = {0}, i, j, id = 1;
    i = j = 0;
    int end = 0, temp_i, temp_j;
    while (!end) {
        while (i < 10 && a[i][j] == 0) {
            a[i][j] = id++;
            i++;
        }
        i--, j++;
        while (j < 10 && a[i][j] == 0) {
            a[i][j] = id++;
            j++;
        }
        j--, i--;
        while (i >= 0 && a[i][j] == 0) {
            a[i][j] = id++;
            i--;
        }
        i++, j--;
        while (j >= 0 && a[i][j] == 0) {
            a[i][j] = id++;
            j--;
        }
        j++, i++;
        end = 1;
        for (temp_i = 0; temp_i < 10; temp_i++) {
            for (temp_j = 0; temp_j < 10; temp_j++) {
                if (a[temp_i][temp_j] == 0) {
                    end = 0;
                    break;
                }
            }
        }
    }
    for (i = 0; i < 10; i++) {
        for (j = 0; j < 10; j++) {
            printf("%4d", a[i][j]);
        }
        putchar('\n');
    }
    return 0;
}

 

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值