小甲鱼s1E33C语言动动手

0:

#include <stdio.h>

void func1(int, int);
void func2(int, int);
int global_var1 = 520;
int global_var2 = 888;
static int var1 = 1;
static int var2 = 2;

void func1(int param1, int param2)
{
    static int var1 = 7;
    static int var2 = 17;


    printf("addr of func1_param1: %#010x\n", &param1);
    printf("addr of func1_param2: %#010x\n", &param2);
    printf("addr of func1_static_var1: %#010x\n", &var1);
    printf("addr of func1_static_var2: %#010x\n", &var2);

}
void func2(const int param1, const int param2)
{
    int var1 = 1;
    int var2 = 2;
    printf("addr of func2_const_param1: %#010x\n", &param1);
    printf("addr of func2_const_param2: %#010x\n", &param2);
    printf("addr of func2_var1: %#010x\n", &var1);
    printf("addr of func2_var2: %#010x\n", &var2);

}


int main()
{
    char string1[] = {"I love you"};
    char string2[] = {"Forever"};
    int param1 = 1;
    int param2 = 2;

    func1(param1, param2);
    func2(param1, param2);

    printf("addr of func1: %#010x\n", &func1);
    printf("addr of func2: %#010x\n", &func2);
    printf("addr of string1: %#010x\n", &string1);
    printf("addr of string2: %#010x\n", &string2);
    printf("addr of global_var1: %#010x\n", &global_var1);
    printf("addr of global_var2: %#010x\n", &global_var2);
    printf("addr of file_static_var1: %#010x\n",&var1);
    printf("addr of file_static_var2: %#010x\n",&var2);

    return 0;
}

1:

#include <stdio.h>

int main(void)
{
    int i, j, k, m, n;
    int num;

    printf("请输入一个奇数: ");
    scanf("%d",&num);

    // 检测是否为奇数
    if (num != 1 && num % 2 == 0){
        printf("请输入奇数!!!");
    }

    int sum[num][num]; // 矩阵

    // 初始化
    for (i = 0; i < num; i++){
        for (j = 0; j < num; j++){
            sum[i][j] = 0;
        }
    }

    k = 1;
    // i 为列, j 为行
    for (i = num / 2, j = 0; i < num, j < num; i++,j--){
        if (i == num){ // 最后一列时回转
            i = 0;
        }
        if (j < 0){  // 最后一行时回转
            j = num - 1;
        }
        if (sum[i][j] == 0){
            sum[i][j] = k;
        } else {    // 当规定的位置有数时,行数减一,列数不变。
            j = n + 1;
            i = m;
            sum[i][j] = k;
        }
        if (k == num * num){
            break;
        }
        k++;
        m = i; // 记录行列
        n = j;
        
    }

    
    for (i = 0; i < num; i++){
        for (j = 0; j < num; j++){
            printf("%3d ",sum[j][i]);
        }
        putchar('\n');
    }
    

    return 0;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

GospeLLLLLL

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值