c语言作业

43 阅读3分钟

1.从键盘输入6个整数
2.找出6个整数中的最大值并将其输出到控制台

运行

#include 
#define N 6 // 定义常量N,修改此处可调整输入整数的数量

int main() {
    int num[N], max, i;
   
    for (i = 0; i < N; i++) {
        printf(&#34;请输入第%d个整数:&#34;, i + 1);
       
        while (scanf(&#34;%d&#34;, &num[i]) != 1) {
            printf(&#34;输入错误,请输入整数:&#34;);
            
            while (getchar() != '\n');
        }
    }
    
    max = num[0];
    for (i = 1; i < N; i++) {
        if (num[i] > max) {
            max = num[i];
        }
    }
    printf(&#34;最大值是:%d\n&#34;, max);
    return 0;
}

image.png

1.从键盘输入6个整数
2.使用冒泡排序法将这6个整数从小到大排序

#include 

int main() {
    int num[6];  
    int i, j;    
    int temp;    

    
    for (i = 0; i < 6; i++) {
        printf(&#34;请输入第%d个整数:&#34;, i + 1);
      
        while (scanf(&#34;%d&#34;, &num[i]) != 1) {
            printf(&#34;输入错误,请输入整数:&#34;);
            while (getchar() != '\n'); 
        }
    }

    
    for (i = 0; i < 5; i++) {
       
        for (j = 0; j < 5 - i; j++) {
          
            if (num[j] > num[j + 1]) {
                temp = num[j];
                num[j] = num[j + 1];
                num[j + 1] = temp;
            }
        }
    }


    printf(&#34;从小到大排序后的结果:&#34;);
    for (i = 0; i < 6; i++) {
        printf(&#34;%d &#34;, num[i]);
    }
    printf(&#34;\n&#34;);

    return 0;
}

image.png

矩阵转置是线性代数的基本运算就是将矩阵的行,列交换,即将行变成列,将列变成行,要求编写程序,实现输入一个4行4列的矩阵,将矩阵转置后输出

#include 

int main() {
   
    int mat[4][4], trans[4][4];
    int i, j;

    
    printf(&#34;请输入4行4列矩阵的16个元素(每行输入4个整数,空格分隔):\n&#34;);
    for (i = 0; i < 4; i++) { 
        printf(&#34;请输入第%d行的4个元素:&#34;, i + 1);
        for (j = 0; j < 4; j++) { 
           
            while (scanf(&#34;%d&#34;, &mat[i][j]) != 1) {
                printf(&#34;输入错误,请输入整数:&#34;);
                while (getchar() != '\n'); 
            }
        }
    }


    for (i = 0; i < 4; i++) {
        for (j = 0; j < 4; j++) {
           
            trans[j][i] = mat[i][j];
        }
    }

    
    printf(&#34;\n原4×4矩阵:\n&#34;);
    for (i = 0; i < 4; i++) {
        for (j = 0; j < 4; j++) {
            printf(&#34;%4d&#34;, mat[i][j]); 
        }
        printf(&#34;\n&#34;); 
    }

    printf(&#34;\n转置后的4×4矩阵:\n&#34;);
    for (i = 0; i < 4; i++) {
        for (j = 0; j < 4; j++) {
            printf(&#34;%4d&#34;, trans[i][j]);
        }
        printf(&#34;\n&#34;);
    }

    return 0;
}

image.png

通过豆包可以进行优化

#include 

int main() {
    // 定义原矩阵mat、转置矩阵trans,循环变量i(行)、j(列)
    int mat[4][4], trans[4][4];
    int i, j;

    // 第一步:输入4行4列矩阵的元素
    printf(&#34;请输入4行4列矩阵的16个元素(每行输入4个整数,空格分隔):\n&#34;);
    for (i = 0; i < 4; i++) { // 遍历4行
        printf(&#34;请输入第%d行的4个元素:&#34;, i + 1);
        for (j = 0; j < 4; j++) { // 遍历每行的4列
            // 输入校验(可选,避免非整数输入)
            while (scanf(&#34;%d&#34;, &mat[i][j]) != 1) {
                printf(&#34;输入错误,请输入整数:&#34;);
                while (getchar() != '\n'); // 清空无效输入
            }
        }
    }

    // 第二步:矩阵转置(核心逻辑)
    for (i = 0; i < 4; i++) {
        for (j = 0; j < 4; j++) {
            // 原矩阵第i行j列 → 转置矩阵第j行i列
            trans[j][i] = mat[i][j];
        }
    }

    // 第三步:输出结果(原矩阵 + 转置矩阵)
    printf(&#34;\n原4×4矩阵:\n&#34;);
    for (i = 0; i < 4; i++) {
        for (j = 0; j < 4; j++) {
            printf(&#34;%4d&#34;, mat[i][j]); // %4d 让输出对齐,更美观
        }
        printf(&#34;\n&#34;); // 每行结束换行
    }

    printf(&#34;\n转置后的4×4矩阵:\n&#34;);
    for (i = 0; i < 4; i++) {
        for (j = 0; j < 4; j++) {
            printf(&#34;%4d&#34;, trans[i][j]);
        }
        printf(&#34;\n&#34;);
    }

    return 0;
}