C语言数组编程实例合集

127、编写一个程序,读取整数并将它们存储在一个 5×5 数组的第一行和第一列中。然后,程序应创建托普利茨矩阵并以代数形式显示其元素。

#include <stdio.h>
#define ROWS 5

int main(void) {
    int i, j, t[ROWS][ROWS];

    printf("Enter [0][0] element: ");
    scanf("%d", &t[0][0]);

    for (i = 1; i < ROWS; i++) {
        printf("Enter [0][%d] element: ", i);
        scanf("%d", &t[0][i]);
    }

    for (i = 1; i < ROWS; i++) {
        printf("Enter [%d][0] element: ", i);
        scanf("%d", &t[i][0]);
    }

    for (i = 0; i < ROWS - 1; i++)
        for (j = 0; j < ROWS - 1; j++)
            t[i + 1][j + 1] = t[i][j];

    for (i = 0; i < ROWS; i++) {
        for (j = 0; j < ROWS; j++)
            printf("%3d", t[i][j]);
        printf("\n");
    }

    return 0;
}

128、编写一个程序,将100名学生在10门课程中的成绩读取并存储在一个100×10的数组中,然后显示每个学生的平均成绩、最高成绩和最低成绩。该程序还应显示数组中持有最佳和最差平均成绩的位置。如果有多个学生具有相同的最佳或最差平均成绩,程序应显示找到的第一个位置。程序应强制用户输入的成绩在[0, 10]范围内。

#include <stdio.h>
#define STUDS 100
#define COURSES 10

int main(void){
    int i, j, min_pos, max_pos;
    float sum, min_grd, max_grd, avg_grd, min_avg_grd, max_avg_grd, grd[STUDS][COURSES];

    max_avg_grd = -1;
    min_avg_grd = 11;

    for(i = 0; i < STUDS; i++){
        sum = 0;
        max_grd = -1;
        min_grd = 11;

        for(j = 0; j < COURSES; j++){
            do{
                printf("Enter grade of student_%d for lesson_%d: ", i+1, j+1);
                scanf("%f", &grd[i][j]);
            } while(grd[i][j] < 0 || grd[i][j] > 10);

            sum += grd[i][j];

            if(grd[i][j] >= max_grd)
                max_grd = grd[i][j];

            if(grd[i][j] <= min_grd)
                min_grd = grd[i][j];
        }

        avg_grd = sum / COURSES;

        if(avg_grd > max_avg_grd){
            max_avg_grd = avg_grd;
            max_pos = i;
        }

        if(avg_grd < min_avg_grd){
            min_avg_grd = avg_grd;
            min_pos = i;
        }

        printf("Student_%d: Avg = %.2f Max = %.2f Min = %.2f\n", i+1, avg_grd, max_grd, min_grd);
    }

    printf("Best average grade position: %d\n", max_pos + 1);
    printf("Wo
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值