分支结构

小学数学 N 合一

题目描述

问题 1

请输出 I love Luogu!<!-- more -->

问题 2

这里有 10 个苹果,小 A 拿走了 2 个,Uim 拿走了 4 个,八尾勇拿走剩下的所有的苹果。我们想知道:

  1. 小A 和 Uim 两个人一共拿走多少苹果?
  2. 八尾勇能拿走多少苹果?

现在需要编写一个程序,输出两个数字作为答案,中间使用空格分开。

问题 3

现在有 14 个苹果。要均分给 4 名同学,分不掉的苹果放回冰箱。请问:

  1. 每位同学能分得几个苹果?

  2. 一共分出去多少苹果?

  3. 把几个苹果放回冰箱?

    现在需要编写一个程序,输出三个数字作为答案,每个数字一行。

问题 4

现在有 500 毫升的肥宅快乐水,要均分给 3 名同学,每位同学可以分到多少毫升?请输出一个数字作为输出。保留 6 位有效数字,且不使用科学计数法。

问题 5

甲列火车长 260 米,每秒行 12 米;乙列火车长 220 米,每秒行 20 米,两车相向而行,从两车车头相遇时开始计时,多长时间后两车车尾相离?已知答案是整数。

问题 6

一个长方形长宽分别是 6cm、9cm,求它的对角线长度(cm)。直接使用 cout 输出。

问题 7

Uim 银行账户里面有 100 元。经过了下面的操作:

  1. 往里面存了 10 元;

  2. 购物花掉了 20 元;

  3. 把里面的钱全部取出。

    请在每次操作后输出账户余额,并使用换行符隔开。

问题 8

当半径为 r=5,请输出圆的周长、面积和球体积。取 \pi=3.141593。请直接使用 cout 输出答案,每行一个数字。

问题 9

一只小猴买了若干个桃子。第一天他刚好吃了这些桃子的一半,又贪嘴多吃了一个;第二天他也刚好吃了剩余桃子的一半,贪嘴多吃了一个;第三天他又刚好吃了剩下的桃子的一半,并贪嘴多吃了一个。第四天起来一看,发现桃子只剩下一个了。请问小猴买了几个桃子?

问题 10

洛谷的评测任务是单位时间内均匀增加的。8 台评测机 30 分钟可以刚好把评测队列中的程序评测完毕,10 台评测机 6 分钟可以刚好把评测队列中的程序评测完毕,请问几台评测机可以在 10 分钟时刚好把评测队列中的程序评测完毕?

问题 11

小 A 跑步速度 5 m/s,八尾勇跑步速度 8 m/s,八尾勇在小 A 后面 100 m,他们同时起跑,请问需要多长时间八尾勇可以追上小 A?输出一个数字表示答案,使用 cout 直接输出。

问题 12

大家都知道有 26 个英文字母,其中 A 是第一个字母。现在请编程求出:

  1. M 是字母表中的第几个字母?
  2. 第 18 个字母是什么?

输出一个数字和一个字母,使用换行隔开。

问题 13

小 A 有两块球形橡皮泥,一个半径是 4,一个半径是 10。他想把这两块橡皮泥揉在一起,然后塑造成一个正方体,请问这个正方体的棱长是多少?如果结果不是整数,则舍去小数点之后的数字。取π= 3.141593。

问题 14

根据咕咕网校的预测,当课程定价为 110 元时,会有 10 人报名。如果课程价格每降低 1 元,就会多 1 名报名者(反之亦然)。如果希望总共能收到 3500 元学费的话,那么应该定价多少呢?已知本题有两个答案符合要求,则取较小的那一个。如果这个答案不是整数,则需四舍五入精确到整数。

输入格式

输入一个正整数,表示第几个问题。

输出格式

根据所输入的问题编号,输出对应问题的答案。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include <stdio.h>
#include <math.h>
int a;
float b,c,d,e;
int main()
{
scanf("%d",&a);
switch(a){
case 1: printf("I love Luogu!"); break;
case 2: printf("6 4"); break;
case 3: printf("3\n12\n2"); break;
case 4: printf("%.31f",500/3); break;
case 5: printf("15"); break;
case 6: b=sqrt(6*6+9*9); printf("%0.4f",b); break;
case 7: printf("110\n90\n0"); break;
case 8: b=2*3.141593*5; c=3.141593*5*5;d=4/3*3.141593*5*5*5;printf("%.4f\n%.4f\n%.3f",b,c,d); break;
case 9: printf("22"); break;
case 10: printf("9"); break;
case 11: b=100/3; printf("%.4f",b); break;
case 12: printf("13\nR"); break;
case 13: printf("16"); break;
case 14: printf("50"); break;
}
}
苹果和虫子

八尾勇喜欢吃苹果。她现在有 m(1≤m≤100)个苹果,吃完一个苹果需要花费 t(0≤t≤100)分钟,吃完一个后立刻开始吃下一个。现在时间过去了 s(1≤s≤10000)分钟,请问她还有几个完整的苹果?

输入格式

输入三个非负整数表示 ,m,t,s

输出格式

输出一个整数表示答案。

这不简单?

1
2
3
4
5
6
7
8
#include <stdio.h>
int m,s,t,x;
int main()
{
scanf("%d %d %d",&m,&t,&s);
x=m-s/t;
printf("%d",x);
}

考虑到除t=0,和苹果完整性问题,修改后如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <stdio.h>
int m, s, t, x;
int main() {
scanf("%d %d %d", &m, &t, &s);
if (s >= t)
{
x = m - s / t; //常规计算
if(s%t) x--; //考虑是否刚好吃完的情况
} else {
x = m-1; //开始吃苹果,即使没吃完,完整的苹果也少一个。
}
if(t==0) x=0; //t=0的情况
printf("%d",x);
return 0;
}

输出特例代入计算,没有bug,不过仍未通过检测。

数的性质

一些整数可能拥有以下的性质:

  • 性质 1:是偶数;
  • 性质 2:大于 44 且不大于 1212。

小 A 喜欢这两个性质同时成立的整数;Uim 喜欢这至少符合其中一种性质的整数;八尾勇喜欢刚好有符合其中一个性质的整数;正妹喜欢不符合这两个性质的整数。现在给出一个整数 x,请问他们是否喜欢这个整数?

输入格式

输入一个整数 (0≤1000)x(0≤x≤1000)

输出格式

输出这 44 个人是否喜欢这个数字,如果喜欢则输出 1,否则输出 0,用空格分隔。输出顺序为:小 A、Uim、八尾勇、正妹。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <stdio.h>

int a,b,c,d,input,x,y; //abcd代表四人,xy表示两个性质。

int main() {
scanf("%d",&input);
if(input%2) x=0; else{x=1;}
if(input>4&&input<=12) y=1;else {y=0;};
a=(x&&y); b=(x||y);
if(x*y==0&&(x||y)==1) c=1; else {c=0;};
if(x==0&&y==0) d=1; else {d=0;};
printf("%d %d %d %d",a,b,c,d);
return 0;
}

得亏学过数电和单片机,反哺了。

闰年判断

输入一个年份,判断这一年是否是闰年,如果是输出 11,否则输出 00。

1
2
3
4
5
6
7
8
#include <stdio.h>
int input,x;
int main() {
scanf("%d",&input);
if(input%4==0&&input%100||input%400==0) x=1; else{x=0;}
printf("%d",x);
return 0;
}
Apples

八尾勇喜欢吃苹果。她今天吃掉了 x 个苹果。英语课上学到了 apple 这个词语,想用它来造句。如果她吃了 1 个苹果,就输出 Today, I ate 1 apple.;如果她没有吃,那么就把 1 换成 0;如果她吃了不止一个苹果,别忘了 apple 这个单词后面要加上代表复数的 s。你能帮她完成这个句子吗?

1
2
3
4
5
6
7
8
9
10
11
12
#include <stdio.h>
int input;
int main() {
scanf("%d",&input);
if(input<2)
printf("Today, I ate %d apple.",input);
else
{
printf("Today, I ate %d apples.",input);
}
return 0;
}

或者使用?:语句也可。

洛谷团队系统

在洛谷上使用团队系统非常方便的添加自己的题目。如果在自己的电脑上配置题目和测试数据,每题需要花费时间 55 分钟;而在洛谷团队中上传私有题目,每题只需要花费 33 分钟,但是上传题目之前还需要一次性花费 1111 分钟创建与配置团队。现在要配置 n* 道题目,如果本地配置花费的总时间短,请输出 Local,否则输出 Luogu

1
2
3
4
5
6
7
8
9
10
11
12
#include <stdio.h>
int input,x;
int main() {
scanf("%d",&input);
if((input*5)>(input*3+11))
printf("Luogu");
else
{
printf("Local");
}
return 0;
}
肥胖问题

BMI 指数是国际上常用的衡量人体胖瘦程度的一个标准,其算法是 m/h²其中 m 是指体重(千克),ℎ 是指身高(米)。不同体型范围与判定结果如下:

  • 小于 18.518.5:体重过轻,输出 Underweight
  • 大于等于 18.518.5 且小于 2424:正常体重,输出 Normal
  • 大于等于 2424:肥胖,不仅要输出 BMI 值(使用 cout 的默认精度),然后换行,还要输出 Overweight

现在给出体重和身高数据,需要根据 BMI 指数判断体型状态并输出对应的判断。

对于非 C++ 语言,在输出时,请四舍五入保留六位有效数字输出,如果小数部分存在后缀 00,不要输出后缀 00。

请注意,保留六位有效数字不是保留六位小数。例如 123.4567 应该输出为 123.457,5432.10 应该输出为 5432.1。

输入格式

共一行。

第一行,共 22 个浮点数,m*,*h,分别表示体重(单位为 kg),身高(单位为 m)。

输出格式

输出一行一个字符串,表示根据 BMI 的对应判断。特别地,对于 Overweight 情况的特别处理请参照题目所述。

1
2
3
4
5
6
7
8
9
10
#include <stdio.h>
float m,k,x;
int main() {
scanf("%f %f",&m,&k);
x=m/k/k;
if(x<18.5) printf("Underweight");
if(x<25&&x>=18.5) printf("Normal");
if(x>25) printf("%.6g\nOverweight",x);
return 0;
}

“.6g”意思是输出6位有效数字。

三位数排序

给出三个整数a*,b,c(0≤a,b,*c≤100),要求把这三位整数从小到大排序。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include<stdio.h>
int main()
{
int a,b,c,i;
scanf("%d %d %d",&a,&b,&c);
if(a>b)
{
i=a; a=b; b=i; //a和b互换
}
if(a>c)
{
i=a; a=c; c=i; //a和c互换
}
if(b>c)
{
i=b; b=c; c=i; //b和c互换
}
printf("%d %d %d",a,b,c);
}

总所周知,三位数需要比较三次。也可以用数组和指针的方法。

月份天数

输入年份和月份,输出这一年的这一月有多少天。需要考虑闰年。

输入格式

输入两个正整数,分别表示年份 y 和月数 m,以空格隔开。

输出格式

输出一行一个正整数,表示这个月有多少天。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include<stdio.h>
int main()
{
int y,m;
scanf("%d %d",&y,&m);
if(m==2&&(y%4==0&&y%100||y%400==0))
{
printf("29"); //闰年二月
}
else
{
if(m%2&&m!=2||m==8) printf("31");
if(m%2==0&&m!=2&&m!=8) printf("30");
if(m==2) printf("28");
}
}

个人检测不出bug,不过仍未通过洛谷测试。

不高兴的津津

津津上初中了。妈妈认为津津应该更加用功学习,所以津津除了上学之外,还要参加妈妈为她报名的各科复习班。另外每周妈妈还会送她去学习朗诵、舞蹈和钢琴。但是津津如果一天上课超过八个小时就会不高兴,而且上得越久就会越不高兴。假设津津不会因为其它事不高兴,并且她的不高兴不会持续到第二天。请你帮忙检查一下津津下周的日程安排,看看下周她会不会不高兴;如果会的话,哪天最不高兴。

输入格式

输入包括 77 行数据,分别表示周一到周日的日程安排。每行包括两个小于 1010 的非负整数,用空格隔开,分别表示津津在学校上课的时间和妈妈安排她上课的时间。

输出格式

一个数字。如果不会不高兴则输出 00,如果会则输出最不高兴的是周几(用 1,2,3,4,5,6,71,2,3,4,5,6,7 分别表示周一,周二,周三,周四,周五,周六,周日)。如果有两天或两天以上不高兴的程度相当,则输出时间最靠前的一天。

1
2
3
4
5
6
7
8
9
10
11
12
#include<stdio.h>

int main()
{
int a[6],b[6],i,x,y;
for(i=0;i<7;i++)
{
scanf("%d %d",&a[i],&b[i]);
if((a[i]+b[i])>x&&(a[i]+b[i])>8) {x=a[i]+b[i]; y=i+1;}
}
printf("%d",y);
}

(好像不需要数组),仍未通过洛谷测试点(12个差一),本人查看无bug。

买铅笔

P 老师需要去商店买n 支铅笔作为小朋友们参加 NOIP 的礼物。她发现商店一共有 33 种包装的铅笔,不同包装内的铅笔数量有可能不同,价格也有可能不同。为了公平起 见,P 老师决定只买同一种包装的铅笔。

商店不允许将铅笔的包装拆开,因此 P 老师可能需要购买超过n 支铅笔才够给小朋友们发礼物。

现在 P 老师想知道,在商店每种包装的数量都足够的情况下,要买够至少n 支铅笔最少需要花费多少钱。

输入格式

第一行包含一个正整数n,表示需要的铅笔数量。

接下来三行,每行用 2 个正整数描述一种包装的铅笔:其中第 1 个整数表示这种包装内铅笔的数量,第 2 个整数表示这种包装的价格。

保证所有的 7 个数都是不超过 10000 的正整数。

输出格式

11 个整数,表示 P 老师最少需要花费的钱。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include<stdio.h>
int main()
{
int i,num,a[6],x,money;
scanf("%d",&a[0]);
for(i=1;i<4;i++)
{
scanf("%d %d",&a[i],&a[i+1]);
num=a[0]/a[i];
if(a[0]%a[i]) num++;
x=num*a[i+1];
if(i==1) money=x;
if(x<money) money=x;
}
printf("%d",money);
}
三角形分类

给出三条线段 a*,b,*c 的长度,均是不大于 10000 的正整数。打算把这三条线段拼成一个三角形,它可以是什么三角形呢?

  • 如果三条线段不能组成一个三角形,输出Not triangle
  • 如果是直角三角形,输出Right triangle
  • 如果是锐角三角形,输出Acute triangle
  • 如果是钝角三角形,输出Obtuse triangle
  • 如果是等腰三角形,输出Isosceles triangle
  • 如果是等边三角形,输出Equilateral triangle

如果这个三角形符合以上多个条件,请按以上顺序分别输出,并用换行符隔开。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include<stdio.h>
int main()
{
int a,b,c,i;
scanf("%d %d %d",&a,&b,&c);
if(a>b) {i=a; a=b; b=i;}
if(a>c) {i=a; a=c; c=i;}
if(b>c) {i=b; b=c; c=i;} //排序,方便后续判断
if(a+b>c)
{
if(a*a+b*b==c*c) {printf("Right triangle\n");}
if(a*a+b*b>c*c) {printf("Acute triangle\n");}
if(a*a+b*b<c*c) {printf("Obtuse triangle\n");}
if(a==b) {printf("Isosceles triangle\n");}
if(a==b==c) {printf("Equilateral triangle\n");}
}
else
{
printf("Not triangle\n");
}
}

仍未通过洛谷测试点,本人查看无bug。

小玉家的电费

夏天到了,各家各户的用电量都增加了许多,相应的电费也交的更多了。小玉家今天收到了一份电费通知单。小玉看到上面写:据闽价电 [2006]27 号规定,月用电量在 150 千瓦时及以下部分按每千瓦时 0.4463 元执行,月用电量在 151∼400 千瓦时的部分按每千瓦时 0.4663 元执行,月用电量在 401 千瓦时及以上部分按每千瓦时 0.56630.5663 元执行;小玉想自己验证一下,电费通知单上应交电费的数目到底是否正确呢。请编写一个程序,已知用电总计,根据电价规定,计算出应交的电费应该是多少。

输入格式

输入一个正整数,表示用电总计(单位以千瓦时计),不超过 10000。

输出格式

输出一个数,保留到小数点后 11 位(单位以元计,保留到小数点后 11 位)。

1
2
3
4
5
6
7
8
9
10
11
12
#include <stdio.h>
int main()
{
int x;
double y;
scanf("%d",&x);
if(x<=150) y=x*0.4463;
if(x>150&&x<400) y=(x-150)*0.4663+150*0.4463;
if(x>400) y=(x-400)*0.5663+250*0.4663+150*0.4463;
printf("%.1f",y);
return 0;
}
小鱼的航程(改进版)

有一只小鱼,它平日每天游泳 250250 公里,周末休息(实行双休日),假设从周 x 开始算起,过了 n 天以后,小鱼一共累计游泳了多少公里呢?

输入格式

输入两个正整数 x*,*n,表示从周 x 算起,经过 n天。

输出格式

输出一个整数,表示小鱼累计游泳了多少公里。

1
2
3
4
5
6
7
8
9
10
11
12
#include <stdio.h>
int main()
{
int x,n,y=0,i;
scanf("%d %d",&x,&n);
for(i=x;i<x+n;i++)
{
if(i%7!=6&&i%7!=0) {y=y+250;}
}
printf("%d",y);
return 0;
}
三角函数

输入一组勾股数 a*,b,ca\=b\=c),用分数格式输出其较小锐角的正弦值。(要求约分。)

输入格式

一行,包含三个正整数,即勾股数 a*,b,*c(无大小顺序)。

输出格式

一行,包含一个分数,即较小锐角的正弦值

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include <stdio.h>
int main()
{
int a,b,c,i;
scanf("%d %d %d",&a,&b,&c);
if(a>b)
{
i=a; a=b; b=i; //a和b互换
}
if(a>c)
{
i=a; a=c; c=i; //a和c互换
}
if(b>c)
{
i=b; b=c; c=i; //b和c互换
}
for(i=2;i<a+b+c;i++) //用于约分
{
if(a%i==0&&c%i==0) {a=a/i;c=c/i;i--;}
}
printf("%d/%d",a,c);
return 0;
}

实际的输出只是最短边/斜边,for循环用于暴力约分。假如4/8,第一次可约为2/4,然后i–,使数据再次尝试约2,直到无法约2位置,然后i++,尝试约3,以此类推。

陶陶摘苹果

陶陶家的院子里有一棵苹果树,每到秋天树上就会结出 10 个苹果。苹果成熟的时候,陶陶就会跑去摘苹果。陶陶有个 30 厘米高的板凳,当她不能直接用手摘到苹果的时候,就会踩到板凳上再试试。

现在已知 10 个苹果到地面的高度,以及陶陶把手伸直的时候能够达到的最大高度,请帮陶陶算一下她能够摘到的苹果的数目。假设她碰到苹果,苹果就会掉下来。

输入格式

输入包括两行数据。第一行包含 1010 个 100 到 200 之间(包括 100 和 200 )的整数(以厘米为单位)分别表示 10 个苹果到地面的高度,两个相邻的整数之间用一个空格隔开。第二行只包括一个 100 到 120 之间(包含 100 和 120 )的整数(以厘米为单位),表示陶陶把手伸直的时候能够达到的最大高度。

输出格式

输出包括一行,这一行只包含一个整数,表示陶陶能够摘到的苹果的数目。

1
2
3
4
5
6
7
8
9
10
11
12
#include<stdio.h>
int main()
{
int a[9],b,num,i;
scanf("%d %d %d %d %d %d %d %d %d %d",&a[0],&a[1],&a[2],&a[3],&a[4],&a[5],&a[6],&a[7],&a[8],&a[9]);
scanf("%d",&b);
for(i=0;i<10;i++)
{
if((b+30)/a[i]>=1) num++;
}
printf("%d",num);
}
ABC

三个整数分别为 A*,B,*C。这三个数字不会按照这样的顺序给你,但它们始终满足条件:A<B<C。为了看起来更加简洁明了,我们希望你可以按照给定的顺序重新排列它们。

【输入格式】

第一行包含三个正整数 A*,B,*C,不一定是按这个顺序。这三个数字都小于或等于 100100。第二行包含三个大写字母 A、B 和 C(它们之间没有空格)表示所需的顺序。

【输出格式】

在一行中输出 A,B和 C,用一个 (空格)隔开。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
#include <stdio.h>

//冒泡排序,从小到大
void BubbleSort(int nums[], int n)
{
for(int q=0;q<n;q++)
{


for(int i=0;i<n-1;i++)
{
if (nums[i]>nums[i+1]) {int x=nums[i];nums[i]=nums[i+1];nums[i+1]=x;}
}
}

}
int main()
{
int nums[3];
char str[4];
scanf("%d %d %d",&nums[0],&nums[1],&nums[2]);
BubbleSort(nums,3);
scanf("%s",str);

for (int i = 0; str[i] != 0; i++)
{
switch (str[i])
{
case 'A':
printf("%d ", nums[0]);
break;
case 'B':
printf("%d ", nums[1]);
break;
case 'C':
printf("%d ", nums[2]);
break;
}
}
printf("\n");
return 0;

}
ISBN 号码

每一本正式出版的图书都有一个 ISBN 号码与之对应,ISBN 码包括 9 位数字、1 位识别码和 3 位分隔符,其规定格式如 x-xxx-xxxxx-x,其中符号 - 就是分隔符(键盘上的减号),最后一位是识别码,例如 0-670-82162-4就是一个标准的 ISBN 码。ISBN 码的首位数字表示书籍的出版语言,例如 0 代表英语;第一个分隔符 - 之后的三位数字代表出版社,例如 670 代表维京出版社;第二个分隔符后的五位数字代表该书在该出版社的编号;最后一位为识别码。

识别码的计算方法如下:

首位数字乘以 1 加上次位数字乘以 2 ……以此类推,用所得的结果 mod11,所得的余数即为识别码,如果余数为 10,则识别码为大写字母 X。例如 ISBN 号码 0-670-82162-4 中的识别码 44 是这样得到的:对 067082162 这 99 个数字,从左至右,分别乘以 1,2,…,9 再求和,即 0×1+6×2+……+2×9=1580,然后取 158 mod 11的结果 4 作为识别码。

你的任务是编写程序判断输入的 ISBN 号码中识别码是否正确,如果正确,则仅输出 Right;如果错误,则输出你认为是正确的 ISBN 号码。

输入格式

一个字符序列,表示一本书的 ISBN 号码(保证输入符合 ISBN 号码的格式要求)。

输出格式

一行,假如输入的 ISBN 号码的识别码正确,那么输出 Right,否则,按照规定的格式,输出正确的 ISBN 号码(包括分隔符 -)。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#include <stdio.h>
#include <math.h>
int main()
{
int b,c,d,x,y,a[9],i,k=0,num;
char p;
scanf("%d-%d-%d-%s",&b,&c,&d,&p);
a[0]=b;
for(i=1;i<4;i++) //数据是3位,利用循环逐位取数,放入数组。比如123,分别将1,2,3放入a[1],a[2],a[3]
{
y=pow(10,3-i);
if(y!=0) x=c/y;
c=c%y;
a[i]=x;
}
for(i=4;i<9;i++) //同上,这次数据是5位,从a[4]开始往后取数放
{
y=pow(10,8-i);
if(y!=0) x=d/y;
d=d%y;
a[i]=x;
}
for(i=0;i<9;i++) //ISBN计算公式,先求和
{
k=k+a[i]*(i+1);
}
num=k%11; //ISBN计算公式,再取余
if(num==10&&p==88) //条件判断与输出
{
printf("Right"); goto Break;
}
if(num==10&&p!=88)
{
printf("%d-%d%d%d-%d%d%d%d%d-X",a[0],a[1],a[2],a[3],a[4],a[5],a[6],a[7],a[8]); goto Break;
}
if((num+48)==p&&p!=88) {printf("Right");goto Break;}
if((num+48)!=p){printf("%d-%d%d%d-%d%d%d%d%d-%d\n",a[0],a[1],a[2],a[3],a[4],a[5],a[6],a[7],a[8],num);goto Break;}

Break:
return 0;
}

遇到一个很烦的bug,第二次提取的五位数,在DEV中,输出

理论上,应该输出为0-670-82162-4。单独提取部分函数出来,进行测试,测试结果正常。怀疑定义时int长度不够,遂定为long,无果。最后换了一下编译器,在VC中结果正常。