C语言 · 错误票据
某涉密单位下发了某种票据,并要在年终全部收回。
每张票据有唯一的ID号。全年所有票据的ID号是连续的,但ID的开始数码是随机选定的。
因为工作人员疏忽,在录入ID号的时候发生了一处错误,造成了某个ID断号,另外一个ID重号。
你的任务是通过编程,找出断号的ID和重号的ID。
假设断号不可能发生在最大和最小号。
要求程序首先输入一个整数N(N<100)表示后面数据行数。
接着读入N行数据。
每行数据长度不等,是用空格分开的若干个(不大于100个)正整数(不大于100000),请注意行内和行末可能有多余的空格,你的程序需要能处理这些空格。
每个整数代表一个ID号。
要求程序输出1行,含两个整数m n,用空格分隔。
其中,m表示断号ID,n表示重号ID
5 6 8 11 9
10 12 9
164 178 108 109 180 155 141 159 104 182 179 118 137 184 115 124 125 129 168 196
172 189 127 107 112 192 103 131 133 169 158
128 102 110 148 139 157 140 195 197
185 152 135 106 123 173 122 136 174 191 145 116 151 143 175 120 161 134 162 190
149 138 142 146 199 126 165 156 153 193 144 166 170 121 171 132 101 194 187 188
113 130 176 154 177 120 117 150 114 183 186 181 100 163 160 167 147 198 111 119
/*
输入完样例按下回车 再按Ctrl+z 再按下回车就行了
*/
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#define mem(A) memset(A,0,sizeof(A))
#define N 10000010
int piao[];
int main(){
int n;
scanf("%d",&n);
getchar();//处理此处的换行符
int num=;//票数量
while(scanf("%d",&piao[num++]) != EOF);
/*冒泡升序*/
for(int i=; i<num-; i++){
for(int j=; j<num--i; j++){
if(piao[j]>piao[j+]){
int t = piao[j];
piao[j] = piao[j+];
piao[j+] = t;
}
}
}
int duan=,chong=;
for(int i=;i<num;i++){
if(piao[i]==piao[i-])
chong=piao[i];
else if(piao[i]-piao[i-]!=)
duan=piao[i-]+;
}
printf("%d %d",duan,chong);
return ;
}
法二:
1、用qsort;
2、学会了用strtok函数:分解字符串为一组字符串。strtok(line," ");//line为要分解的字符串,空格分隔符字符
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
char line[*];//每行数据的最长长度
int piao[];//票数量
int cmp(const void *a,const void *b){
return *(int *)a - *(int *)b;
}
int main(){
int n;
scanf("%d",&n);
getchar();//处理此处的换行符
int num=;//票数量
int index;//数组下标
for(int i=; i<n; i++){
gets(line);//将一行数据以字符串的方式接收
//分解字符串为一组字符串
char *p = strtok(line," ");//line为要分解的字符串,空格分隔符字符
//atoi将字符串转为int类型
piao[index++]=atoi(p);//将数据转为int类型赋给票据数组
while(p){
p = strtok(NULL," ");
if(p){
piao[index++] = atoi(p);
}
}
//排序
qsort(piao,index,sizeof(piao[]),cmp);
}
int duan=,chong=;
for(int i=;i<index-;i++){
if(piao[i]==piao[i-])
chong=piao[i];
else if(piao[i]-piao[i-]!=)
duan=piao[i-]+;
}
printf("%d %d",duan,chong);
return ;
}
C语言 · 错误票据的更多相关文章
- [转贴]从零开始学C++之异常(一):C语言错误处理方法、C++异常处理方法(throw, try, catch)简介
一.C语言错误处理方法 1.返回值(if … else语句判断错误) 2.errno(linux 系统调用) 3.goto语句(函数内局部跳转) 4.setjmp.longjmp(Do not use ...
- 【蓝桥杯】PREV-5 错误票据
题目链接:gpid=T28">http://lx.lanqiao.org/problem.page? gpid=T28 历届试题 错误票据 时间限制:1.0s 内存限制:2 ...
- 从零开始学C++之异常(一):C语言错误处理方法、C++异常处理方法(throw, try, catch)简介
一.C语言错误处理方法 1.返回值(if … else语句判断错误) 2.errno(linux 系统调用) 3.goto语句(函数内局部跳转) 4.setjmp.longjmp(Do not use ...
- 错误票据|2013年蓝桥杯B组题解析第七题-fishers
错误票据 某涉密单位下发了某种票据,并要在年终全部收回. 因为工作人员疏忽,在录入ID号的时候发生了一处错误,造成了某个ID断号,另外一个ID重号. 你的任务是通过编程,找出断号的ID和重号的ID. ...
- 19 Error handling and Go go语言错误处理
Error handling and Go go语言错误处理 12 July 2011 Introduction If you have written any Go code you have pr ...
- C语言错误处理方法、C++异常处理方法(throw, try, catch)简介
一.C语言错误处理方法 1.返回值(if … else语句判断错误) 2.errno(linux 系统调用) 3.goto语句(函数内局部跳转) 4.setjmp.longjmp(Do not use ...
- java实现第四届蓝桥杯错误票据
错误票据 题目描述 某涉密单位下发了某种票据,并要在年终全部收回. 每张票据有唯一的ID号.全年所有票据的ID号是连续的,但ID的开始数码是随机选定的. 因为工作人员疏忽,在录入ID号的时候发生了一处 ...
- C语言错误 BUG报错整理
错误一 关键字:间接寻址级别不同 #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <stdlib.h> ...
- 蓝桥杯 错误票据 (stringstream的使用)
题目链接:http://lx.lanqiao.cn/problem.page?gpid=T28 问题描述 某涉密单位下发了某种票据,并要在年终全部收回. 每张票据有唯一的ID号.全年所有票据的ID号是 ...
随机推荐
- MongoDB学习笔记(11) --- 聚合
MongoDB中聚合(aggregate)主要用于处理数据(诸如统计平均值,求和等),并返回计算后的数据结果.有点类似sql语句中的 count(*) aggregate() 方法 MongoDB中聚 ...
- 【转】Lisp 已死,Lisp 万岁!
Lisp 已死,Lisp 万岁! 有一句古话,叫做“国王已死,国王万岁!”它的意思是,老国王已经死去,国王的儿子现在继位.这句话的幽默,就在于这两个“国王”其实指的不是同一个人,而你咋一看还以为它自相 ...
- Groovy 学习手册(5)
8. 函数式编程 函数式编程(FP)是一种编程风格,侧重于函数和最小化状态的变化(使用不可变的数据结构).它更接近于用数学来表达解决方案,而不是循序渐进的操作. 在函数式编程里,其功能应该是" ...
- IAR仿真时绿色箭头一直指向汇编界面,而C界面没有
设置如下
- android Jni NDK开发环境搭建及其简单实例的编写
android Jni NDK开发环境搭建及其简单实例的编写 由于工作需要,需要采用开发想要的JNI,由于之前没有接触过安卓的开发,所以更加网上的帖子,学习了下.遇到了些问题,然后总结下学习过程中 ...
- Java 8 Streams filter examples
1. Streams filter() and collect() package com.mkyong.java8; import java.util.Arrays;import java.util ...
- centos 6.3 64位下cpuminer +mining_proxy 挖掘莱特币(LTC)教程
1.下载软件: cpuminer: http://sourceforge.net/projects/cpuminer/files/ 找到对应的版本,我的服务器是centos64的,找了个当前最高版本: ...
- fcitx五笔的安装[zz]
Fcitx──小企鹅输入法:Free Chinese Input Toy for X是国产软件的精品,是一个以GPL方式发布的.基于XIM的简体中文输入法集合(原为G五笔),包括五笔.五笔拼音.二笔. ...
- 如何在PHP项目中使用phinx进行数据迁移和建表
建表 phinx\bin\phinx.bat migrate -e production 建设 phinx.yml文件 paths: migrations: %%PHINX_CONFIG_DIR%%\ ...
- JS中getElementByID,getElementsByName,getElementsByTagName的区别
<input type="text" name="mynumber" id="mynum1" value="" / ...