数组,杨辉,矩阵翻转

void main()
{
    int i = 1;
    char arr[21] = {};
    char* p = NULL;
    p = arr;
    for (int i = 0; i < 20; i++)//空出一块空间给‘\0’
    {
        arr[i] = i + 1;
        printf("%d \n", arr[i]);
    }
    for (p=arr;*p!='\0';p=p+1)
    {

        printf("%d",*p);

    }
    getchar();
}
void main()
{
    int i = 1;
    char arr[21] = {};
    char* p = NULL;
    p = arr;
    for (int i = 0; i < 20; i++)
    {
        arr[i] = i + 1;
        printf("%d \n", arr[i]);
    }
    for (p=arr;*p!='\0';p=p+1)
    {       
        printf("%d",*(p));

    }
    getchar();
}

移动地址*p取值

质因子分解

void main()  //90 = 2 * 3 * 3 * 5
{   
    int i = 2, num = 4, a = 0;
    while (j / i >= 1)//排除1
    {
        if (j%i==0)//找到能被整除的数,在排除1以后质子只能被自身整除
        {
        !a ?printf("%d ",i):printf("* %d",i);
        num /= i;//整除赋值
        a++;//为了打印前面的乘号,a非0
        }
        else
        {
            i++;//递增找到符合条件的数
        }
    }
    getchar();
}

杨辉三角

void main()
{
    int arr[8][8] = {};
    for (int i = 0; i < 8; i++)
    {       
        for (int j = 0; j <i; j++)//
        {
            if (j == 0||j==i)//0列赋值  斜边坐标赋值
            {
                arr[i][j] = 1;
            }
            if (arr[i][j]==0)//给剩下的数赋值
            {
                arr[i][j] = arr[i - 1][j - 1]+arr[i-1][j];//新的值等于上一行两个数之和,看形状就可以知道
            }
            printf("%3d", arr[i][j]);       
        }
        printf("\n");
    }
    getchar();
}

第一次循环打印了换行,第二次j

void main()
{
    int a[5][5], b[5][5], i, j;
    for (i = 0; i < 5; i++)
    {
        for (j = 0; j < 5; j++)
        {
            a[i][j] = 10 + rand() % 91;
            //循环给每个下标赋值
            b[j][4 - i] = a[i][j];    //顺90度   
            //b[4-i][4 - j] = a[i][j];   //180度
            //b[4 - j][i] = a[i][j];    //逆90度
            //b[4 - i][j] = a[i][j];    //上下镜像翻转
            //b[i][4 - j] = a[i][j];      //左右镜像翻转  
            printf("%5d", a[i][j]);
        }
        printf("\n");
    }
    printf("\n\t顺时针旋转90度\n\n");
    //printf("\n\t顺时针旋转180度\n\n");
    //printf("\n\t逆时针旋转90度\n\n\n");
    //printf("\n\t上下镜像翻转\n\n");
    //printf("\n\t左右镜像翻转\n\n");

    for (i = 0; i < 5; i++)
    {
        for (j = 0; j < 5; j++)
        {
            //printf("%5d", b[i][j]);//打印赋值结果
            printf("%5d",a[4-i][j]);//打印出的结果是一样的不过只是把值的顺序改了,不是真的赋值
        }
        printf("\n");
    }
    getchar();
}

在循环赋值那里卡住半天没搞懂是怎么回事,数组的赋值是没规定必须从首地址开始的,也可以先从其它下标一 一赋值,打印出来的结果也会不一样;

void main()
{
    int a[5][5], b[5][5], i, j;
    char arr[65];
    for (i = 0; i < 5; i++)
    {
        for (j = 0; j < 5; j++)
        {
            a[i][j] = 10 + rand() % 91; 
            printf("%5d", a[i][j]); 
        }   
        printf("\n");
    }
    printf("\n\t顺时针旋转90度\n\n");
    char brr[65];
    for (i = 0; i < 5; i++)
    {
        for (j = 0; j < 5; j++)
        {
            printf("%5d", a[4 - i][j]);//改变输出顺序,达到想要的效果,不过下标的值是没有改变的
        }
        printf("\n");

    }
    getchar();
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值