11078 - Open Credit System(简单题)

本文提供了一个简单的算法问题的解决方案,并详细解释了代码实现的过程。

一道简单题。

细节参见代码:

#include<bits/stdc++.h>
using namespace std;
const int INF = 100000000;
int T,n,m,a;
int main() {
    scanf("%d",&T);
    while(T--) {
        scanf("%d",&n);
        int maxv = -INF, ans = -INF;
        for(int i=1;i<=n;i++) {
            scanf("%d",&a);
            if(i != 1) 
                ans = max(ans,maxv - a);
            maxv = max(maxv,a);
        }
        printf("%d\n",ans);
    }
    return 0;
}


#define _CRT_SECURE_NO_WARNINGS #include <mysql.h> #include <iostream> #include <string> #include<stdio.h> //#include <mysql.h> // 全局变量保持不变 CHAR Course_name[128]; CHAR Student_cName[128], Student_cClass[128]; int Course_iNum = 0, Course_credit = 0; int Student_iNum = 0, Student_age = 0; int CourseSelection_id = 0, CourseSelection_St_id = 0, CourseSelection_Course_id = 0; MYSQL *conn; MYSQL_RES *result; MYSQL_ROW row; char Course_cTitle[128]; using namespace std; //错误处理宏 #define CHECK_MYSQL_ERROR(conn, msg) \ if (mysql_errno(conn) != 0) { \ cerr << msg << ": " << mysql_error(conn) << endl; \ mysql_close(conn); \ return 1; \ } int ljmysql() { // 初始化MySQL连接对象 MYSQL* conn = mysql_init(nullptr); if (!conn) { cerr << "初始化MySQL失败: 内存分配错误" << endl; return 1; } // 连接数据库(替换为你的实际信息) const char* host = "localhost"; const char* user = "root"; // 用户名 const char* pass = "123456";// 密码 const char* dbname = "jxgl"; // 数据库名 unsigned int port = 3306; // 端口号 conn = mysql_real_connect(conn, host, user, pass, dbname, port, nullptr, 0); if (!conn) { cerr << "连接失败: " << mysql_error(conn) << endl; mysql_close(conn); return 1; } cout << "成功连接到MYSQL8.0数据库" << endl; if (mysql_query(conn, "SET NAMES utf8mb4") != 0) { CHECK_MYSQL_ERROR(conn, "设置字符编码失败"); } system("pause"); // 暂停查看输出 return 0; } void ejcd(int m) { //int ShowRecord(int DbSource, SQLCHAR * cSELECTString); void search(int iTopMenu); void insert(int iTopMenu); void edit(int DBSource); void delete1(int DBSource); } void search(int iTopMenu) { } void insert(int source) { char current[500]; int result; switch (source) {case 1: //插入课程 printf_s("-------课程插入---------\n"); printf_s("请输入课程名称:"); scanf("%s",&Course_name); printf_s("请输入课程学分:"); scanf("%ld", &Course_credit); break; case 2: printf("-------学生插入---------\n"); printf("请输入学生姓名:"); scanf("%s", Student_cName); printf("请输入学生班级:"); scanf("%s", Student_cClass); printf("请输入学生年龄:"); scanf_s("%d", &Student_age); break; case 3: // 显示所有学生 ShowRecord(2, "SELECT * FROM Student"); printf("请选择选课学生编号:"); scanf("%d", &iSt_id); // 验证学生是否存在 snprintf(query, sizeof(query), "SELECT * FROM Student WHERE iNum = %d", iSt_id); if (mysql_query(conn, query)) { fprintf(stderr, "查询失败: %s\n", mysql_error(conn)); return; } result = mysql_store_result(conn); if (!result) { fprintf(stderr, "结果集为空\n"); return; } int rowCount = mysql_num_rows(result); mysql_free_result(result); if (rowCount == 1) { // 显示所有课程 ShowRecord(1, "SELECT * FROM Course"); printf("请选择课程编号:"); scanf("%d", &iCo_id); // 构建选课插入语句 snprintf(query, sizeof(query), "INSERT INTO CourseSelection (Course_id, Student_id) VALUES (%d, %d)", iCo_id, iSt_id); } else { system("cls"); printf("输入学生编号不正确!按任意键继续...\n"); system("pause"); return; } break; default: break; } } int showrecord(int source, char* query) { if (mysql_query(conn, query)) { printf("查询失败: %s\n", mysql_error(conn)); return 0; } result = mysql_store_result(conn); if (!result) { printf("结果集为空\n"); return 0; } int num_fields = mysql_num_fields(result); int rowc = 0; switch (source) { case 1://课程表 printf("|-------------------------------------------------------|\n"); printf("|\t学号\t|\t课程名称\t|\t学时\t|\t学分\t|\t课程类型\t|\n"); printf("|-------------------------------------------------------|\n"); while (row = mysql_fetch_row(result)) { printf("|\t%s\t", row[0] ? row[0] : "NULL"); printf("|%-10s\t", row[1] ? row[1] : "NULL"); printf("|%-10s\t", row[2] ? row[2] : "NULL"); printf("|%-20s\t", row[3] ? row[3] : "NULL"); printf("|\t%s\t|", row[4] ? row[4] : "NULL"); printf("\n|---------------------------------------------------------------------------------------|\n"); rowc++; } default: case 2://学生表 printf("|---------------------------------------------------------------|\n"); printf("|\t编号\t|\t姓名\t|\t性别\t|\t出生日期\t|\t院系号\t|\t地址\t|\n"); printf("|---------------------------------------------------------------|\n"); while ((row = mysql_fetch_row(result))) { printf("|\t%s\t", row[0] ? row[0] : "NULL"); printf("|%-10s\t", row[1] ? row[1] : "NULL"); printf("|%-10s\t", row[2] ? row[2] : "NULL"); printf("|\t%s\t|", row[3] ? row[3] : "NULL"); printf("|\t%s\t|", row[4] ? row[4] : "NULL"); printf("|\t%s\t|", row[5] ? row[5] : "NULL"); printf("\n|---------------------------------------------------------------|\n"); rowc++; case 3: // 选课 printf("|---------------------------------------------------------------------------------------|\n"); printf("|\t编号\t|\t姓名\t|\t班级\t|\t课程名称\t|\t学分\t|\n"); printf("|---------------------------------------------------------------------------------------|\n"); while ((row = mysql_fetch_row(result))) { printf("|\t%s\t", row[0] ? row[0] : "NULL"); printf("|%-10s\t", row[1] ? row[1] : "NULL"); printf("|%-10s\t", row[3] ? row[3] : "NULL"); // 班级在第4列 printf("|%-20s\t", row[2] ? row[2] : "NULL"); // 课程名称在第3列 printf("|\t%s\t|", row[4] ? row[4] : "NULL"); // 学分在第5列 printf("\n|---------------------------------------------------------------------------------------|\n"); rowc++; } break; } printf("一共找到 %d 条记录\n", rowc); mysql_free_result(result); return rowc; } int main() { int m; ejcd(m); ljmysql(); finsh(); do { //一级菜单 system("cls");//会将上一次运行输出的内容给清除掉,屏幕上只显示本次输出的结果 printf("\t\t\t---------------------------------\t\n"); printf("\t\t\t|\t课程选修管理系统!\t|\n"); printf("\t\t\t|\t 欢迎使用!\t\t|\n"); printf("\t\t\t---------------------------------\n"); printf("\n\n"); printf("\t\t\t-------------主菜单--------------\t\n"); printf("\t\t\t|\t \t\t|\n"); printf("\t\t\t|\t1.课程管理\t\t|\n"); printf("\t\t\t|\t \t\t|\n"); printf("\t\t\t|\t2.学生管理\t\t|\n"); printf("\t\t\t|\t \t\t|\n"); printf("\t\t\t|\t3.选课管理\t\t|\n"); printf("\t\t\t|\t \t\t|\n"); printf("\t\t\t|\t0.退出系统\t\t|\n"); printf("\t\t\t---------------------------------\t\n"); printf("\n选择功能前面的数字进入功能(0~3):\n"); scanf_s("%d", &m); return 0; } } }
最新发布
07-30
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值