数据结构上机1

1、题目: 将1~10存入数组a[10],并将其逆序输出

cpp 复制代码
#define _CRT_SECURE_NO_WARNINGS 1
//(1) 将1~10存入数组a[10],并将其逆序输出

#include <stdio.h>

int main() {
    int a[10];
    // 将1到10存入数组a[10]
    for (int i = 0; i < 10; i++)
    {
        a[i] = i + 1;
    }
    // 逆序输出数组a[10]
    printf("逆序输出数组:\n");
    for (int i = 9; i >= 0; i--) 
    {
        printf("%d ", a[i]);
    }
    return 0;
}

结果展示:

2、题目://(2) 用指针方式编写程序:从键盘输入10个整型数据并存入数组,要求将10个数中最大的数与第一个输入的数交换;将10个数中最小的数与最后的一个输入的数交换。

cpp 复制代码
#define _CRT_SECURE_NO_WARNINGS 1
//(2) 用指针方式编写程序:从键盘输入10个整型数据并存入数组,
//    要求将10个数中最大的数与第一个输入的数交换;将10个数中最小的数与最后的一个输入的数交换。
#include <stdio.h>

void swap(int* a, int* b) 
{
    int temp = *a;
    *a = *b;
    *b = temp;
}

int main() 
{
    int arr[10];

    printf("请输入10个整型数据:\n");
    for (int i = 0; i < 10; i++)
    {
        scanf("%d", &arr[i]);
    }

    int* max = arr;
    int* min = arr;

    // 寻找最大和最小值的指针
    for (int i = 1; i < 10; i++) 
    {
        if (arr[i] > *max) 
        {
            max = &arr[i];
        }
        if (arr[i] < *min) 
        {
            min = &arr[i];
        }
    }

    // 交换最大值和第一个输入的值
    swap(max, &arr[0]);

    // 交换最小值和最后一个输入的值
    swap(min, &arr[9]);

    printf("交换后的数组:\n");
    for (int i = 0; i < 10; i++) 
    {
        printf("%d ", arr[i]);
    }

    return 0;
}

结果展示:

3、题目://(3) 有5个学生,每个学生的数据包括学号、姓名、三门课的成绩、平均分。
要求:从键盘依次输入5个学生的学号、姓名、三门课的成绩,自动计算三门课的平均分,并将5个学生的数据在屏幕上输出。

cpp 复制代码
#define _CRT_SECURE_NO_WARNINGS 1
//(3) 有5个学生,每个学生的数据包括学号、姓名、三门课的成绩、平均分。
//要求:从键盘依次输入5个学生的学号、姓名、三门课的成绩,自动计算三门课的平均分,并将5个学生的数据在屏幕上输出。

#include <stdio.h>

// 结构体定义:学生信息
struct Student 
{
    int student_id;
    char name[50];
    float scores[3];
    float average_score;
};

int main() 
{
    struct Student students[5];
    printf("请输入5个学生的信息:\n");

    // 输入学生信息
    for (int i = 0; i < 5; i++) 
    {
        printf("学生%d的学号: ", i + 1);
        scanf("%d", &students[i].student_id);

        printf("学生%d的姓名: ", i + 1);
        scanf("%s", students[i].name);

        printf("学生%d的三门课成绩(用空格分隔): ", i + 1);
        for (int j = 0; j < 3; j++) 
        {
            scanf("%f", &students[i].scores[j]);
        }

        // 计算平均分
        float sum = 0;
        for (int j = 0; j < 3; j++) 
        {
            sum += students[i].scores[j];
        }
        students[i].average_score = sum / 3;
    }

    printf("\n学生信息如下:\n");

    // 输出学生信息
    for (int i = 0; i < 5; i++) 
    {
        printf("学号: %d\n", students[i].student_id);
        printf("姓名: %s\n", students[i].name);
        printf("三门课成绩: %.2f, %.2f, %.2f\n", students[i].scores[0], students[i].scores[1], students[i].scores[2]);
        printf("平均分: %.2f\n", students[i].average_score);
        printf("\n");
    }

    return 0;
}

结果展示:

希望对你有所帮助

相关推荐
2401_8480097214 分钟前
Redis零基础入门学习
数据库·redis·学习
Ronaldinho Gaúch19 分钟前
算法题中的日期问题
开发语言·c++·算法
Chary201628 分钟前
Opencascade VTK 集成服务 VIS
算法
callJJ28 分钟前
Spring Bean 生命周期详解——从出生到销毁,结合源码全程追踪
java·后端·spring·bean·八股文
怒放吧德德30 分钟前
AsyncTool + SpringBoot:轻量级异步编排最佳实践
java·后端
如果你想拥有什么先让自己配得上拥有30 分钟前
全等三角形的判定条件思考
学习·总结
麦德泽特36 分钟前
机器人赛事系统架构:基于UDT和MQTT的低延迟、高可靠通信
c语言·开发语言·安全·系统架构·机器人
毅炼1 小时前
Java 集合常见问题总结(1)
java·后端
楠秋9201 小时前
代码随想录算法训练营第三十一天|56. 合并区间 、 738.单调递增的数字、968.监控二叉树
数据结构·算法·leetcode·贪心算法
utmhikari1 小时前
【架构艺术】治理后端稳定性的一些实战经验
java·开发语言·后端·架构·系统架构·稳定性·后端开发