菜鸡小李 2021-04-05 11:31 采纳率: 75%
浏览 140
已采纳

为什么在devc++上可以运行只输入一个英文句号,在PTA上显示段错误

我国使用的手机号码为11位,其中各段有不同的编码方向:前3位是网络识别号;第4-7位为地区编码;第8-11位表示用户号码。

本题要求你实现一个程序,自动统计指定地区编码的手机号码的个数。

输入格式:

输入第一行为待查询的地区编码,随后每行都是11位数字组成的手机号码,当读到某一行只有一个英文句点 . 时,输入结束。

输出格式:

首先在第一行中输出手机号码的总个数。然后统计指定地区编码的手机号码有多少个。第二行首先输出第一次出现该地区编码的手机号码是第几个(从 1 开始计数,没有输出0),然后输出该地区编码手机号码的总个数(没有输出0),其间以一个空格分隔。题目保证输出的所有数字不超过10​的九次方​​。

输入样例:


 

0549

 

13563910168

 

13505490199

 

18853905089

 

13705390115

 

.

输出样例:


 

4

 

2 1

 

#include<stdio.h> 
int main()
{
	char a[100000][11];
	char code[4];
	int i,j,t,flag=0,M=0;
	for(i=0;i<4;i++)
	scanf("%1c",&code[i]);
	getchar();
    for(i=0;i<100000;i++)
	{
	a[i][0]=getchar();
	if(a[i][0]!='.')
	{
	for(j=1;j<11;j++)
	{
	scanf("%1c",&a[i][j]);
	}
	getchar();
	t=i+1;
	}
	else
	break;
    }
    if(i==0)
    M=1;
    printf("%d\n",t);
	for(i=0;i<t;i++)
	{
		if(a[i][3]==code[0]&&a[i][4]==code[1]&&a[i][5]==code[2]&&a[i][6]==code[3])
		{
		printf("%d ",i+1);
		flag++;
		}
	}
	if(M==1)
	{
	printf("0 0\n");
    }  
    else
	{
	if(flag==0)
        printf("0 0");
    else
        printf("%d",flag);
	}
    return 0;
}
  • 写回答

3条回答 默认 最新

  • 拼题A 2021-04-06 18:40
    关注

    你好:

    首先最大的问题是没有段错误而是答案错误,其次是你可能看错了题,题目只要求输出第一次出现是第几个以及总个数,你这样写会把所有出现的都输出。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 为啥画版图在Run DRC会出现Connect Error?可我Calibre的hostname和计算机的hostname已经设置成一样的了。
  • ¥20 网站后台使用极速模式非常的卡
  • ¥20 Keil uVision5创建project没反应
  • ¥15 mmseqs内存报错
  • ¥15 vika文档如何与obsidian同步
  • ¥15 华为手机相册里面的照片能够替换成自己想要的照片吗?
  • ¥15 陆空双模式无人机飞控设置
  • ¥15 sentaurus lithography
  • ¥100 求抖音ck号 或者提ck教程
  • ¥15 关于#linux#的问题:子进程1等待子进程A、B退出后退出(语言-c语言)