009-合并表记录
来源:互联网 发布:拍一部网络剧要多少钱 编辑:程序博客网 时间:2024/05/16 14:19
/* 008-合并表记录题目描述数据表记录包含表索引和数值,请对表索引相同的记录进行合并,即将相同索引的数值进行求和运算,输出按照key值升序进行输出。输入描述:先输入键值对的个数然后输入成对的index和value值,以空格隔开输出描述:输出合并后的键值对(多行)输入例子:40 10 21 23 4输出例子:0 31 23 4*///C语言版#include <stdio.h> #define N 500struct data{int index;int value;};void showTable(struct data *tb,int n);int main(void){int num,i,j;int count = 0;int flag ;struct data table[N];scanf("%d",&num);scanf("%d %d",&table[0].index,&table[0].value);struct data tmp;for(i = 1;i < num;i++){scanf("%d %d",&tmp.index,&tmp.value);flag = 0; //保证下一次读取时flag = 0//判断是否与前面的index值相同 for(j = 0;j <= count;j++){if(tmp.index == table[j].index){table[j].value += tmp.value; //相同就value相加 flag = 1;break ;}}//不同就加入该数据项 if(!flag){count++;table[count].index = tmp.index;table[count].value = tmp.value;}}showTable(table,count + 1);return 0;}void showTable( struct data *tb,int n){int i,j;struct data min = tb[0]; //先根据index升序排序 for(i = 0;i < n - 1;i++){for(j = i + 1;j < n;j++){if(tb[i].index > tb[j].index){min = tb[j];tb[j] = tb[i];tb[i] = min;}}}//输出for(i = 0;i < n;i++) { printf("%d %d\n",tb[i].index,tb[i].value); } }
0 0
- 009-合并表记录
- 合并表记录
- 合并表记录
- 合并表记录
- 合并表记录
- 合并表记录
- 合并表记录
- 合并表记录
- 合并表记录
- 合并表记录
- 合并表记录
- 合并表记录
- 合并表记录
- 合并表记录
- 合并表记录
- 合并表记录
- 合并表记录
- 合并表记录
- poj 3641 Pseudoprime numbers
- Android 底部弹出式菜单
- java反射的应用(Hibernate)
- 让dedecms搜索页面支持标签调用及自定义字段调用的方法
- 经典算法面试题目-判断两个字符串是否是变位词(1.4)
- 009-合并表记录
- [codeforce ] Vacations [贪心]
- LA 3644 X-Plosives [并查集]
- HDOJ-1061 Rightmost Digit
- 信息安全方面优秀论文
- windows 画图工具 —— mspaint 的使用
- sql之top用法
- 各进制转换
- POJ1995Raising Modulo Numbers