一、多组数据输入

在TZOJ练习平台上,经常会见到一些题目说输入数据有多组输入以EOF结束当输入的数据为0时结束等等的题目描述,那么这些输入具体是如何去解决呢?

1.有明确输入n组数据,可以使用for/while循环来实现n组数据

while:

#include<bits/stdc++.h>
using namespace std;
int main()
{
    int n;
    cin>>n;
    while(n--)
    {
        //在此输入数据 
    }
     return 0;
}

for:

#include<bits/stdc++.h>
using namespace std;
int main()
{
    int n;
    cin>>n;
    for(int i=1;i<=n;i++) //循环n遍 
    {
        
    }
     return 0;
}

 

2.没说明具体数据组数,但是有说当输入为0时结束,这种一般有两种写法

第一种:

#include<bits/stdc++.h>
using namespace std;
int main()
{
    int n;
    while(cin>>n,n) //在while里输入数据,用逗号隔开的n就是在判断是否为0 
    {
        
    } 
     return 0;
}

第二种:

#include<bits/stdc++.h>
using namespace std;
int main()
{
    int n;
    while(cin>>n) //在while里输入数据
    {
        if(n==0)break; //如果输入的n为0,那么结束循环 
    } 
     return 0;
}

3.题目仅说多组数据输入,没有明确任何结束条件

#include<bits/stdc++.h>
using namespace std;
int main()
{
    int n;
    while(cin>>n) //在while里输入数据
    {

    } 
     return 0;
}

1002: C语言实验题――两个数比较

例如这题用到的就是第一种多组数据输入方案,对于题目所要求的比较大小的程序,直接在while循环中去执行就可以了

#include<bits/stdc++.h>
using namespace std;
int main()
{
    int n;
    cin>>n;
    while(n--) //n--循环n次 
    {
        int a,b;
        cin>>a>>b;
        if(a>b) cout<<a<<endl;
        else cout<<b<<endl;
    } 
     return 0;
}

1078: 输入入门(3)

题目说明输入的a,b以输入0,0时结束,属于明确结束条件,第二种情况

#include<bits/stdc++.h>
using namespace std;
int main()
{
    int a,b; //a,b定义在外面 
    while(cin>>a>>b)  //在cin中输入a,b 
    { 
        if(a==0&&b==0)break; //判断本次输入a,b的结果是否满足结束条件
        cout<<a+b<<endl;
    } 
     return 0;
}

 

1076: 输入入门(1)

题目说要以EOF作为结束,EOF是文件结束符,也就是输入ctrl+z,这种就是第三种输入情况

#include<bits/stdc++.h>
using namespace std;
int main()
{
    int n;
    while(cin>>n) //直接在while循环条件中输入n 
    { //每次循环都输入a,b并输出a+b的结果 
        int a,b;
        cin>>a>>b;
        cout<<a+b<<endl;
    } 
     return 0;
}

 

1369: 求绝对值

题目没有说明以什么结束,其实就是以EOF结束,属于第三种情况

#include<bits/stdc++.h>
using namespace std;
int main()
{
    int n;
    while(cin>>n) //直接在while循环条件中输入n 
    { //每次循环都输入a,并输出绝对值保留小数 
        int a;
        cin>>a;
        if(a>0)printf("%.2f",a); //%.2f保留2位小数
        else printf("%.2f",-a); 
    } 
     return 0;
}

 

原文地址:http://www.cnblogs.com/jyssh/p/16882026.html

1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长! 2. 分享目的仅供大家学习和交流,请务用于商业用途! 3. 如果你也有好源码或者教程,可以到用户中心发布,分享有积分奖励和额外收入! 4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解! 5. 如有链接无法下载、失效或广告,请联系管理员处理! 6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需! 7. 如遇到加密压缩包,默认解压密码为"gltf",如遇到无法解压的请联系管理员! 8. 因为资源和程序源码均为可复制品,所以不支持任何理由的退款兑现,请斟酌后支付下载 声明:如果标题没有注明"已测试"或者"测试可用"等字样的资源源码均未经过站长测试.特别注意没有标注的源码不保证任何可用性