数据结构上机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;
}

结果展示:

希望对你有所帮助

相关推荐
草莓熊Lotso14 分钟前
C++ 方向 Web 自动化测试入门指南:从概念到 Selenium 实战
前端·c++·python·selenium
Olrookie27 分钟前
若依前后端分离版学习笔记(二十)——实现滑块验证码(vue3)
java·前端·笔记·后端·学习·vue·ruoyi
茉莉玫瑰花茶36 分钟前
floodfill 算法(dfs)
算法·深度优先
请你喝好果汁64137 分钟前
Conda_bashrc 初始化机制学习笔记
笔记·学习·conda
LucianaiB43 分钟前
招聘可以AI面试,那么我制作了一个AI面试教练不过分吧
后端
CoderCodingNo1 小时前
【GESP】C++五级考试大纲知识点梳理, (5) 算法复杂度估算(多项式、对数)
开发语言·c++·算法
学编程就要猛1 小时前
数据结构初阶:时间和空间复杂度
数据结构
星河队长1 小时前
VS创建C++动态库和C#访问过程
java·c++·c#
maxruan1 小时前
PyTorch学习
人工智能·pytorch·python·学习
无奈何杨2 小时前
CoolGuard更新,ip2region升级、名单增加过期时间
后端