刚开始做acm的题目,有点不习惯,代码写的比较乱,不过已经经过验证是正确的了,写写代码对自己还是很有帮助的,坚持,坚持。

#include #include

struct tel_number

{

char a[20];

};

struct eight_number

{

char b[8];

};

struct not_equal

{

char b[8];

int count;

};

char change_number(char num)

{

char real_number;

switch(num)

{

case '0':real_number = '0';break;

case '1':real_number = '1';break;

case 'A': case 'B':case 'C': case '2': real_number = '2';break;

case 'D': case 'E':case 'F': case '3': real_number = '3';break;

case 'G': case 'H':case 'I': case '4': real_number = '4';break;

case 'J': case 'K':case 'L': case '5': real_number = '5';break;

case 'M': case 'N':case 'O': case '6': real_number = '6';break;

case 'P': case 'R':case 'S': case '7': real_number = '7';break;

case 'T': case 'U':case 'V': case '8': real_number = '8';break;

case 'W': case 'X':case 'Y': case '9': real_number = '9';break;

default: real_number = 'z';

}

return real_number;

}

int main()

{

int num,seq_num;

struct tel_number *seq;

struct eight_number *real;

int k,m;

int count = 0;

printf("please enter your whole telephone number\n");

scanf("%d%c",&num,&k);

seq = malloc(num*sizeof(struct tel_number));

real = malloc(num*sizeof(struct eight_number));

seq_num = 0;

int old_num = num;

int not_equal_count = 0;

while(num)

{

int i = 0;

int j = 0;

char changed;

while(scanf("%c", &((seq+seq_num)->a[i])),(seq+seq_num)->a[i] != '\n')

{

changed = change_number((seq+seq_num)->a[i]);

// printf("old is %c new is %c\n",(seq+seq_num)->a[i],changed);

if(changed != 'z')

{

(real+seq_num)->b[j] = changed;

j++;

}

i++;

}

num--;

//printf("num is %d\n",num);

seq_num++;

}

struct not_equal *c = malloc(old_num*sizeof(struct not_equal));

memset(c,0x0,old_num*sizeof(struct not_equal));

int c_total_count = 0;

// (c->b) = (real->b);

memcpy(c->b,real->b,8);

c->count = 1;

c_total_count++;

int i,j;

for(i = 1; i < old_num; i++)

for(j = 0; j < c_total_count; j++)

if(strcmp((real+i)->b,(c+j)->b) == 0)

{

(c+j)->count++;

break;

}

else

{

if(j == c_total_count-1)

{

//     (c+j+1)->b = (real+i)->b;

memcpy((c+j+1)->b,(real+i)->b,8);

(c+j+1)->count++;

c_total_count++;

break;

}

}

for(j = 0; j < c_total_count; j++)

if((c+j)->count > 1)

{

for(i = 0; i < 3; i++)

printf("%c",(c+j)->b[i]);

printf("-");

for(;i<7;i++)

printf("%c",(c+j)->b[i]);

printf(" %d\n",(c+j)->count);

}

free(seq);

free(real);

free(c);

return 0;

}

/*以下没用,只是编写过程中对一些小方面的测试。

#ifdef DEBUG

printf("the value is %d\n",strcmp(real->b,(real+1)->b));

printf("%s\n",&real->b);

#endif

*/

/*

struct b

{

int value;

int count;

};

int cmp(int a ,int b)

{

if(a == b)

return 0;

if(a > b)

return 1;

else

return -1;

}

int main()

{

int a[10] = {1,1,2,4,5,5,4,3,1,1};

int i,j;

struct b *c = malloc(10*sizeof(struct b));

memset(c,0x0,10*sizeof(struct b));

int c_total_count = 0;

c->value = a[0];

c->count = 1;

c_total_count++;

for(i = 1; i < 10; i++)

for(j = 0; j < c_total_count; j++)

if(cmp(a[i],(c+j)->value) == 0)

{

(c+j)->count++;

break;

}

else

{

if(j == c_total_count-1)

{

(c+j+1)->value = a[i];

(c+j+1)->count++;

c_total_count++;

break;

}

}

for(j = 0; j < c_total_count; j++)

if((c+j)->count > 1)

printf("%d is %d times\n",(c+j)->value,(c+j)->count);

}

*/

北京大学c语言题库,北大acm题库1002题相关推荐

  1. acm竞赛要掌握的知识 北大ACM分类 ACM网址大全

    图论 路径问题 0/1边权最短路径 BFS 非负边权最短路径(Dijkstra) 可以用Dijkstra解决问题的特征 负边权最短路径 Bellman-Ford Bellman-Ford的Yen-氏优 ...

  2. c语言二级考试程序设计题难吗,计算机二级考试:题库抽的不是题是“命”!附赠考试通关全攻略!...

    原标题:计算机二级考试:题库抽的不是题是"命"!附赠考试通关全攻略! 四六级的报名刚截止不久, 考研复试如火如荼地进行, 计算机二级考试如约而至. 今天是考试第一天 老新猜你一定有 ...

  3. 计算机二级C语言的教材、上机考试题库、历年真题等

    对于C语言,想必大家都不陌生,大部分专业都会开这门课程,也是二级考试中较难的一门科目,临考在即,我来分享一下重要考点. 01 C语言程序的结构 TITTLES 1.程序的构成,main 函数和其他函数 ...

  4. 判断题:oracle自带的sql语言环境是pl/sql,习题库简介

    Ⅰ 数据库练习题 答案如下: Ⅱ 数据库练习题 (1)查询教师号来为T1老师教授自课程的课程号和课程名. SELECT TC.CNo,C.CN FROM T left join TC on t.TNo ...

  5. 唐朔飞计算机组成原理pdf_唐朔飞计算机组成原理第2版配套题库名校考研真题课后答案资料课后习题章节题库模拟试题...

    唐朔飞<计算机组成原理>(第2版)配套题库[名校考研真题+课后习题+章节题库+模拟试题] 第一部分 名校考研真题 2015年全国硕士研究生入学统一考试计算机科学与技术学科联考计算机学科专业 ...

  6. 全国青少年编程等级考试python一级真题2022年3月(含题库答题软件账号)

    对青少年编程等级考试Python真题答题考试系统关注的请点击 全国青少年编程等级考试python一级真题2020年12月(含题库答题软件账号)_程序猿下山的博客-CSDN博客_python编程一级试卷 ...

  7. python二级题库 第四套 附刷题软件

    刷 题软件(模拟python二级考试) 操作题刷题软件 公众h:露露IT 回复:python二级 一.选择题 1. 描述数据库系统中全局数据逻辑结构.且为全体用户公共数据视图的是(). A. 概念模式 ...

  8. 最详细最简单:最大公因数求法、辗转相除法、更相减损法,入门ACM,杭电水题,算法递归,初级算法题一看就懂

    文章目录 前言 一.名称定义 1.最大公约数 2.辗转相除法 3.更相减损法 二.ACM杭电入门题 1.解题思路 三.解题参考代码(C语言,C++) 0.最优算法(C++) 1.辗转相除求解(C语言) ...

  9. php 做一个题目木选项,这才是题库!《一站到底》升级题库8000道,站神邀你来挑战!...

    答爆题库 "厦大版何以琛" 邱汐岩 一站到底五周年巅峰会站神之神 南大校草蒲熠星 从历史.常识.诗词.建筑.地理.运动.数学.著作到饮食.服饰.方言.风俗.发明.文物.器物等.可以 ...

  10. java语言与www技术形成性考核册_电大Java语言与WWW技术形成性考核填空题

    2017电大最新题库 电大Java语言与WWW技术形成性考核填空题 1.Java具有的特点简单.面向对象.与平台无关.解释型.多线程.安全.动态的语言. 2.开发与运行Java程序需要经过的三个主要步 ...

最新文章

  1. 潘建伟团队最新研究成果登上Nature:首次实现1120公里长距离无中继纠缠量子密钥分发...
  2. gulp-autoprefixer报Promise is not defined错误
  3. 安装VS2013的离线MSDN帮助文档
  4. 解决办法:E: 无法获得锁 /var/lib/apt/lists/lock - open (11: 资源暂时不可用)
  5. Unity利用GPUinstancing实现大面积草地
  6. 关于商业计划书(Business Project,以下简称BP)写作那些事儿(一)
  7. 中国大学生计算机设计大赛 历史作品博物馆
  8. 11.3.1越狱后无cydia清除越狱环境重新越狱
  9. MATLAB神经网络工具箱 BP神经网络函数化表示 BP神经网络梯度\求导函数
  10. plsql 快捷键 设置 字母大小写
  11. could not delete: [org.jbpm.pvm.internal.model.ExecutionImpl#20007] 使用jbpm流程结束时出现异常
  12. Windows简单TCPIP服务
  13. ubuntu软件包降级命令_如何在Ubuntu上降级软件包
  14. 夏普Sharp SF-S751D 一体机驱动
  15. 从来不是别人的不幸和痛苦
  16. 去除 WPS 的广告
  17. 【vue】【开源】vue开源电商项目hello-mall嗨喽商城
  18. 震撼,愿所有中国人,都能听到这篇演讲!
  19. linux美元符号切换为井号,MyBatis中井号与美元符号的区别
  20. 分析teamTNT团队Linux挖矿木马执行过程与防范

热门文章

  1. 凤凰服务器系统,凤凰系统云服务器
  2. window.dialogArguments与window.showModalDialog用法
  3. Java调用WebService接口
  4. 滑动验证码最简单案例:破解qq空间(豆瓣网)滑块验证码(python+selenium实现)
  5. 谷歌ai人工智能叫什么_Google I / O 2017的“ AI First”口号
  6. 修改 xweibo 的memcache代码,让xweibo支持wincache,加快xweibo速度
  7. 基于Hive数据仓库的标签画像实战
  8. fedora linux五笔输入法,教你在Fedora 14 下安装五笔输入法
  9. ROS路径规划(全局路径规划)
  10. 《自己动手写网络爬虫》笔记6-使用布隆过滤器实现Visited表