2024年2月14日


1.请编程实现二维数组的杨慧三角

#include <stdio.h>
#define N 10

int main() {
    int a[N][N], i, j;
    for (i = 0; i < N; i++) {
        a[i][0] = 1;
        a[i][i] = 1;
    }
    for (i = 2; i < N; i++)
        for (j = 1; j < i; j++)
            a[i][j] = a[i - 1][j - 1] + a[i - 1][j];
    for (i = 0; i < N; i++) {
        for (j = 0; j <= i; j++)
            printf("%d ", a[i][j]);
        printf("\n");
    }
    return 0;
}


2.请编程实现二维数组计算每一行的和以及列和

#include <stdio.h>
#define ROWS 3
#define COLS 4

int main() {
    int a[ROWS][COLS] = {{1, 2, 3, 4}, {5, 6, 7, 8}, {9, 10, 11, 12}};
    int row_sums[ROWS] = {0};
    int col_sums[COLS] = {0};
    int i, j;

    for (i = 0; i < ROWS; i++)
        for (j = 0; j < COLS; j++)
            row_sums[i] += a[i][j];

    for (j = 0; j < COLS; j++)
        for (i = 0; i < ROWS; i++)
            col_sums[j] += a[i][j];

    for (i = 0; i < ROWS; i++)
        printf("Sum of row %d = %d\n", i, row_sums[i]);

    for (j = 0; j < COLS; j++)
        printf("Sum of column %d = %d\n", j, col_sums[j]);

    return 0;
}


3.请编程实现二维数组计算第二大值

#include <stdio.h>
#define ROWS 3
#define COLS 4

int main() {
    int a[ROWS][COLS] = {{1, 2, 3, 4}, {5, 6, 7, 8}, {9, 10, 11, 12}};
    int max = a[0][0], second_max = a[0][0];
    int i, j;

    for (i = 0; i < ROWS; i++)
        for (j = 0; j < COLS; j++)
            if (a[i][j] > max)
                max = a[i][j];

    for (i = 0; i < ROWS; i++)
        for (j = 0; j < COLS; j++)
            if (a[i][j] > second_max && a[i][j] < max)
                second_max = a[i][j];

    printf("Second maximum = %d\n", second_max);

    return 0;
}


4.请使用非函数方法实现系统函数strcat,strcmp,strcpy,strlen

#include <stdio.h>

int main() {
    char s1[100] = "Hello, ";
    char s2[] = "world!";
    char *p1, *p2;

    // strcat
    p1 = s1;
    while (*p1) p1++;
    p2 = s2;
    while ((*p1++ = *p2++));
    printf("%s\n", s1);

    // strcmp
    p1 = s1;
    p2 = s2;
    while (*p1 && (*p1 == *p2)) p1++, p2++;
    printf("%d\n", *p1 - *p2);

    // strcpy
    p1 = s1;
    p2 = s2;
    while ((*p1++ = *p2++));
    printf("%s\n", s1);

    // strlen
    p1 = s1;
    int len = 0;
    while (*p1++) len++;
    printf("%d\n", len);

    return 0;
}

  • 10
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值