菜鸡小李 2021-04-05 11:31 采纳率: 100%
浏览 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 使用esm_msa1_t12_100M_UR50S蛋白质语言模型进行零样本预测时,终端显示出了sequence handled的进度条,但是并不出结果就自动终止回到命令提示行了是怎么回事:
  • ¥15 前置放大电路与功率放大电路相连放大倍数出现问题
  • ¥30 关于<main>标签页面跳转的问题
  • ¥80 部署运行web自动化项目
  • ¥15 腾讯云如何建立同一个项目中物模型之间的联系
  • ¥30 VMware 云桌面水印如何添加
  • ¥15 用ns3仿真出5G核心网网元
  • ¥15 matlab答疑 关于海上风电的爬坡事件检测
  • ¥88 python部署量化回测异常问题
  • ¥15 在现有系统基础上增加功能