sangnanpo
陌小桑Vec
采纳率0%
2016-01-27 09:18

OJ的输入输出 C语言的输入输出多组测试数据

请问OJ测试代码时是如何输入输出的?C语言如何实现多组数据的输出?比如这道题

“水仙花数”是指一个三位数,它的各位数字的立方和等于其本身,比如:153=1^3+5^3+3^3。
现在要求输出所有在m和n范围内的水仙花数。

Input
输入数据有多组,每组占一行,包括两个整数m和n(100<=m<=n<=999)。

Output
对于每个测试实例,要求输出所有在给定范围内的水仙花数,就是说,输出的水仙花数必须大于等于m,并且小于等于n,如果有多个,则要求从小到大排列在一行内输出,之间用一个空格隔开;
如果给定的范围内不存在水仙花数,则输出no;
每个测试实例的输出占一行。

Sample Input

100 120
300 380

Sample Output

no
370 371

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

3条回答

  • qq_27183003 ysuwood 5年前

    参考这个:

     #include<stdio.h>
    int IsNarcissus(int n)
    {
     int i,j,k;
     i=n/100;
     j=n/10;
     k=n;
     if(n==i*i*i+j*j*j+k*k*k) return 1;
     return 0;
    }
    int main(int m,int n)
    {
     while(~scanf("%d%d",&m,&n))
     {
      while(!IsNarcissus(m)&&m<=n) m++;
      if(m<=n) printf("%d",m);
      else{
       printf("no\n");
       continue;
      }
      while(m<n)
        if(IsNarcissus(++m))
       printf(" %d",m);
      printf("\n");
     }
     return 0;
    }
    
    点赞 2 评论 复制链接分享
  • caozhy 回答这么多问题就耍赖把我的积分一笔勾销了 5年前

    不同的oj平台是不同的,一般来说,oj平台会提供文档说明,或者一个例子测试题目,你可以先在那个上面测试你的输入输出。
    一些oj平台有一定的格式容忍性,也就是说你分行或者不分行,用什么字符分行,它都可以接收。
    贴出你的oj平台的地址,可以直接帮你测试。

    点赞 1 评论 复制链接分享
  • 91program 91program 5年前

    C语言多组数据的输出是必须按格式来输入/输出的,一般都是通过 scanf()/printf() 函数来完成。
    例如:scanf("%d%d",&a,&b) 就可以完成两个整型数的输入。
    printf("a=%d,%5d,%o,%x\n",a,a,a,a); 按引号内的格式输出 a 的值。

    点赞 1 评论 复制链接分享