m0_62746615 2022-11-29 16:36 采纳率: 85%
浏览 64
已结题

C/C++程序详细注解

#include
#include studio.h
为什么会这样,该怎样修改呢

  • 写回答

4条回答 默认 最新

  • qfl_sdu 2022-11-29 17:09
    关注

    注释如下

    #include<iostream>
    #include <string.h>
    #include<vector>
    #include<stdlib.h>
    using namespace std;
    struct node {
        int t; //起始顶点
        int w; //终点
        int y; //权重
    };
    struct node a[20010]; //保存所有的边
    int s[1010] = { 0 };  //保存每个顶点的作为起点的边的个数
    int cmp(const void* a, const void* b) { //比较函数,用于排序
        struct node* c = (node*)a; //void指针转为node指针,便于进行比较
        struct node* d = (node*)b; //void指针转为node指针,便于进行比较
        if (c->t != d->t) return c->t - d->t; //先根据边的起点比较
        else return c->w - d->w; //如果起点相等,则根据终点进行比较
    }
    int main() {
        int n, e, t, w, y, sum;
        cin >> n >> e; //输入顶点和边的个数
            for (int i = 0; i < e; i++) //初始化边结构体数组,这个for循环可以不要
            {
                a[i].t = -1; //初始化为-1
                a[i].w = -1;
                a[i].y = -1;
            }
        int max = 0; //这个变量没用
        for (int i = 0; i < e; i++) { //输入e条边的信息
            cin >> a[i].t >> a[i].w >> a[i].y; //输入起点、终点和权重
            s[a[i].t]++; //t是起始顶点,s保存t作为起点时边的个数
        }
        qsort(a, e, sizeof(a[0]), cmp); //调用qsort进行排序,排序的比较函数逻辑由cmp提供(先根据边的起点排序,如果起点相同,再根据终点排序),从小到大排序
        //输出
        int i = 0;
        while (i < e) { //输出e条边
            sum = s[a[i].t]; //得到每个顶点作为起点的边的个数
            printf("%d:", a[i].t); //输出起点id
            for (int j = i; j < sum + i; j++) {  //输出a[i].t作为起始顶点的所有边的信息
                printf("(%d,%d,%d)", a[j].t, a[j].w, a[j].y); //输出起点、终点、权重
            }
            i = i + sum; //i是已经显示的边的个数,sum是每个顶点的边的个数,这里进行累加
            printf("\n");
        }
        return 0;
    }
    
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(3条)

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 11月29日
  • 已采纳回答 11月29日
  • 修改了问题 11月29日
  • 创建了问题 11月29日

悬赏问题

  • ¥15 使用C#,asp.net读取Excel文件并保存到Oracle数据库
  • ¥15 C# datagridview 单元格显示进度及值
  • ¥15 thinkphp6配合social login单点登录问题
  • ¥15 HFSS 中的 H 场图与 MATLAB 中绘制的 B1 场 部分对应不上
  • ¥15 如何在scanpy上做差异基因和通路富集?
  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 虚心请教几个问题,小生先有礼了
  • ¥30 截图中的mathematics程序转换成matlab