美文网首页我家丫头的cpp
c语言编程精解及面试攻略-3-4

c语言编程精解及面试攻略-3-4

作者: 李药师_hablee | 来源:发表于2019-04-28 16:08 被阅读0次
    • goto语句并不是结构化编程模式的一部分,这意味着没有goto语句能写出更完美的c程序
    • 迭代计算正弦级数
    #include<stdio.h>
    #include<math.h>
    /*
    每一项都与前一项有关
    */
    
    int main()
    {
        int n, i, j = 1;
        double x, r, t, sum;
        printf("input number of iterations:");
        scanf_s("%d", &n);
        printf("input the value of angle:");
        scanf_s("%lf", &x);
        //将角度转化为弧度
        r = (x * 3.14159) / 180;
        //用变量t保存级数第1项
        t = r;
        //目前的sum和
        sum = r;
        i = 2;//第二项分母
        //循环计算第2项到第n项
        printf("iteration=1,sum=%lf\n", sum);
        for (j = 2; j <= n; j++)
        {
            int k = i * (i + 1);
            t = (-t) * r * r / (k);//迭代
            sum += t;
            printf("iteration=%d,sum=%lf\n", j, sum);//打印每次的结果
            i += 2;//i要变化
        }
    
        return 0;
    }
    

    第4章 数组

    • 对两个矩阵相乘并显示结果矩阵
    //矩阵相乘
    #include<stdio.h>
    #include<stdlib.h>
    
    int main()
    {
        //矩阵最大大小为10,10
        double a[10][10], b[10][10], c[10][10];
        int i, j, k, r1, r2, c1, c2;
        double sum;
    
        //读入两个矩阵的行数和列数
        printf("\ninput no. of rows, cols of matrix1: ");
        scanf_s("%d %d", &r1, &c1);
    
        printf("\ninput no. of rows, cols of matrix2: ");
        scanf_s("%d %d", &r2, &c2);
    
        //检查矩阵相乘的条件
        if (c1!=r2)
        {
            printf("\nMultiplication is not possible");
            exit(0);//终止程序
        }
    
        //读入matrix1的数据元素
        printf("\ninput elements of matrix1: \n");
        for (i = 0; i < r1; i++)
            for (j = 0; j < c1; j++)
                scanf_s("%lf", &a[i][j]);
    
        //读入matrix2的数据元素
        printf("\ninput elements of matrix2: \n");
        for (i = 0; i < r2; i++)
            for (j = 0; j < c2; j++)
                scanf_s("%lf", &b[i][j]);
    
        //矩阵相乘并显示结果
        printf("\nthe product matrix is: \n");
        for (i = 0; i < r1; i++)
        {
            sum = 0.0;
            for (k = 0; k < c2; k++)
            {
                for (j = 0; j < c1; j++)
                {
                    sum += a[i][j] * b[j][k];
                }
                c[i][k] = sum;
                printf("%.2lf\t", c[i][k]);
                sum = 0.0;
            }
            printf("\n");
        }
    
        return 0;
    }
    
    捕获.JPG
    • 声明并初始化一个三维数组,之后读取它的数据并显示他们
    //初始化并显示一个三维数组
    //三维数组是有很多个二维数组
    #include<stdio.h>
    #include<stdlib.h>
    
    int main()
    {
        int i, j, k;
        
        //声明一个三维数组,由3个二维数组组成,每个二维数组容纳3行5列
        int marks[3][3][5] = {
            {
                {11,12,13,14,15},
                {16,17,18,19,20},
                {21,22,23,24,25}
            },
            {
                {26,27,28,29,30},
                {31,32,33,34,35},
                {36,37,38,39,40}
            },
            {
                {41,42,43,44,45},
                {46,47,48,49,50},
                {51,52,53,54,55}
            },
        };
    
        //读取数组元素并显示他们
        for (i = 0; i < 3; i++)
        {
            for (j = 0; j < 3; j++)
            {
                for (k = 0; k < 5; k++)
                {
                    printf("%d\t", marks[i][j][k]);
                }
                printf("\n");
            }
            printf("\n");
        }
    
        return 0;
    }
    
    捕获.JPG
    • 在C语言中不能用const类型变量来初始化数组大小

    相关文章

      网友评论

        本文标题:c语言编程精解及面试攻略-3-4

        本文链接:https://www.haomeiwen.com/subject/xyzdnqtx.html