printf中的%c,%d,%u........都分别代表输出的是什么类型的?

%d 十进制有符号整数

%md,m指定的是输出字段的宽度,如果数据的位数小于m,则左端补以空格,若大于m,则

  按实际位数输出,如:

  printf("%4d,%4d",a,b)

  若a=123,d=12345,则输出的结果为:

  空格123,12345

%ld输出长整形格式
%u 十进制无符号整数 
%f 浮点数 
%s 字符串 
%c 单个字符 
%p 指针的值 
%e 指数形式的浮点数 
%x, %x 无符号以十六进制表示的整数 
%0 无符号以八进制表示的整数 
%g 自动选择合适的表示法

 CString Tim;
 Tim.Format("%I64u",FftTim);//FftTim是DWORD类型的数据

以下是一个简单的案例,使用Kruskal算法求解一个带权无向图的最小生成树: ```c #include <stdio.h> #include <stdlib.h> #define MAX_VERTICES 100 #define MAX_EDGES 10000 typedef struct { int u, v; int weight; } Edge; int parent[MAX_VERTICES]; int find(int i) { if (parent[i] == i) return i; else return find(parent[i]); } void union_set(int i, int j) { int x = find(i); int y = find(j); parent[x] = y; } int cmp(const void* a, const void* b) { return ((Edge*)a)->weight - ((Edge*)b)->weight; } void kruskal(Edge edges[], int n, int num_vertices) { int i, num_edges = 0; int total_weight = 0; for (i = 0; i < num_vertices; i++) parent[i] = i; qsort(edges, n, sizeof(Edge), cmp); for (i = 0; i < n && num_edges < num_vertices - 1; i++) { int u = edges[i].u; int v = edges[i].v; if (find(u) != find(v)) { union_set(u, v); printf("(%d, %d) %d\n", u, v, edges[i].weight); total_weight += edges[i].weight; num_edges++; } } printf("Total weight: %d\n", total_weight); } int main() { int num_vertices, num_edges, i; Edge edges[MAX_EDGES]; printf("Enter the number of vertices and edges: "); scanf("%d%d", &num_vertices, &num_edges); printf("Enter the edges and their weights:\n"); for (i = 0; i < num_edges; i++) scanf("%d%d%d", &edges[i].u, &edges[i].v, &edges[i].weight); printf("The minimum spanning tree is:\n"); kruskal(edges, num_edges, num_vertices); return 0; } ``` 在这个案例,用户需要输入带权无向图的顶点数和边数,然后输入每条边的起点、终点和权重。程序会输出最小生成树的边及其权重总和。例如,对于下面的带权无向图: ``` 2 0--------1 | | | | 4| 3| | | | | 3--------4 5 ``` 用户可以输入以下内容: ``` Enter the number of vertices and edges: 5 7 Enter the edges and their weights: 0 1 2 0 3 4 0 4 3 1 4 3 1 2 3 2 4 5 3 4 5 ``` 程序会输出以下内容: ``` The minimum spanning tree is: (0, 1) 2 (0, 4) 3 (1, 4) 3 (1, 2) 3 Total weight: 11 ``` 这表示最小生成树的边为(0,1)、(0,4)、(1,4)和(1,2),总权重为11。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值