同时测试多组数据

1 引言

在刷题过程中,为了提高效率,我们往往一次性输入多组测试数据,得到多组测试结果

2 代码实现

注:以C/C++为例(笔者暂时学了这么多Orz…)

2.1 每行个数确定

InputSample01:
98 72
-40 88
-62 -95

C实现:

while(scanf("%d %d",&x,&y)==2){

}

C++实现:

while(cin>>x>>y){

}

InputSample02:
98#72
-40#88
-62#-95

C实现:

while(scanf("%d%c%d",&x,&c,&y)==3){

}

C++实现:

while(cin>>x>>c>>y){

}

2.2 每行个数不确定

2.2.1 给出每行个数

InputSample03:
2 98 72
1 -40

C实现:

while(scanf("%d",&n)==1){
	int a[n];
	for(int i=0;i<n;i++)
		scanf("%d",&a[i]);
}

C++实现:

while(cin>>n){
	int a[n];
	for(int i=0;i<n;i++)
		cin>>a[i];
}

2.2.2 未给出每行个数

2.2.2.1 一般情况

InputSample04:
98 72 -40 88
-62 -95

C实现:

int GetData(int *p)
{
   int n, flag=1;
   char c;
   for(n=0; flag && scanf("%d%c", p+n, &c)==2; n++)		
      if(c=='\n') flag=0;
   return n;
}
int main()
{
   const int N = 1024;
   int array[N], n, k=0;
   
   while((n=GetData(array))!=0){
		//具体表达式
	}  
   return 0;
}

C++实现:

int GetData(int *p)
{
    int n=0;
    char c;
    cin>>p[n];
    while((c=getchar())!='\n'){
        cin>>p[++n];
   }
   return n;
}
int main()
{
   const int N = 1024;
   int array[N], n, k=0;
   
   while((n=GetData(array))!=0){
		//具体表达式
	}  
   return 0;
}
2.2.2.2 特殊情况

InputSample04:
(98, 72, -40, 88)
(-62, -95)
找规律
一般来说,要取出来的数据具有一定的规律,如上面的例子,在‘(’和‘ ’(空格)后必定是数字

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Jaggar_F

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值