鱼C论坛

 找回密码
 立即注册
查看: 32|回复: 6

求助 求大佬帮忙看看多组测试数据怎么输入

[复制链接]
最佳答案
0 
发表于 2020-5-23 11:31:50 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
Description
输入一个正整数n(1<= n <= 6)和n阶方阵a中的每一个元素,如果a是上三角矩阵,输出“YES",否则输出”NO"(上三角矩阵即主对角线以下的元素都为0的矩阵,主对角为从矩阵的左上角至右下角的连线)。

Input
多组测试数据,每组输入一个正整数n,和n行n列的整数,每一行回车结束

Output
Sample Input
3
1 2 3
0 4 5
0 0 6
4
1 2 3 4
5 6 7 8
9 0 11 12
13 0 0 16
Sample Output
YES
NO
第一次做oj题不知道多组测试数据怎么输入输出,搜到的也是每组一行的,现在遇到这种情况
这种和题目输出也不一样 还无法结束  不知道怎么改了T T
  1. #include <stdio.h>

  2. int main()
  3. {
  4.         int n;
  5.         while(~scanf("%d",&n)){
  6.                 int i,j,flag=1,a[6][6];       
  7.        
  8.                 for(i=0;i<n;i++){
  9.                         for(j=0;j<n;j++){
  10.                                 scanf("%d",&a[i][j]);
  11.                         }
  12.                 }
  13.                        
  14.                 for(i=0;i<n;i++){
  15.                         for(j=0;j<i;j++){
  16.                                 if(a[i][j] != 0){
  17.                                         flag = 0;
  18.                                         break;
  19.                                 }
  20.                         }
  21.                 }
  22.                
  23.                 puts(flag?"YES\n":"NO\n");
  24.         }
  25.         return 0;
  26. }
复制代码
求大佬帮帮
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
最佳答案
3 
发表于 2020-5-23 13:14:15 | 显示全部楼层
#include<stdio.h>
int main()
{
        printf("Sample Input(输入10086退出)\n");
        int n;
        int a[99] = {0};
        bool output[99];
        int flag = 0;
        int num = 0;
        while (true) {
                scanf("%d", &n);
                if (n == 10086) {
                        printf("退出\n");
                        break;
                }
                for (int i = 0; i < (n*n); i++) {
                        scanf("%d", a + i);
                }
                //if (a[0] != 0) {
                //        flag = 1;
                //}
                for (int i = 1; i < n; i++) {
                        for (int j = i; j > 0; j--) {
                                if (a[3 * i + (j - 1)] != 0) {
                                        flag = 1;
                                        break;
                                }
                        }
                        if (flag == 1) {
                                break;
                        }
                }
                if (flag == 1) {
                        output[num] = false;
                }
                else {
                        output[num] = true;
                }
                num++;
        }
        printf("Sample Output\n");
        for (int i = 0; i < num; i++) {
                if (output[i]) {
                        printf("YES\n");
                }
                else {
                        printf("NO\n");
                }
        }

       
}

随便看看吧
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
最佳答案
0 
 楼主| 发表于 2020-5-23 13:27:51 | 显示全部楼层
lei1996 发表于 2020-5-23 13:14
#include
int main()
{

结束程序能就以一个回车代表结束吗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
最佳答案
3 
发表于 2020-5-23 13:53:13 | 显示全部楼层
susang33 发表于 2020-5-23 13:27
结束程序能就以一个回车代表结束吗

那是就输出两个矩阵  就回车结束吗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
最佳答案
0 
 楼主| 发表于 2020-5-23 13:56:35 | 显示全部楼层
lei1996 发表于 2020-5-23 13:53
那是就输出两个矩阵  就回车结束吗

对吧 题目也没说有几组数据
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
最佳答案
3 
发表于 2020-5-23 14:15:47 | 显示全部楼层
#include<stdio.h>
int main()
{
        printf("Sample Input(输入10086退出)\n");
        int n;
        int a[99] = {0};
        bool output[99];
        int flag = 0;
        int num = 0;
        while (true) {
                char gc = getchar();
                if (gc == '\n') {
                        break;
                }               
                else {
                        n = (int)(gc - '0');
                }
                for (int i = 0; i < (n*n); i++) {
                        scanf("%d", a + i);
                }
                for (int i = 1; i < n; i++) {
                        for (int j = i; j > 0; j--) {
                                if (a[3 * i + (j - 1)] != 0) {
                                        flag = 1;
                                        break;
                                }
                        }
                        if (flag == 1) {
                                break;
                        }
                }
                if (flag == 1) {
                        output[num] = false;
                }
                else {
                        output[num] = true;
                }
                num++;
                getchar();
        }
        printf("Sample Output\n");
        for (int i = 0; i < num; i++) {
                if (output[i]) {
                        printf("YES\n");
                }
                else {
                        printf("NO\n");
                }
        }
       
       
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
最佳答案
3 
发表于 2020-5-23 14:16:26 | 显示全部楼层
这会输完矩阵 直接两个回车就退出了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

小甲鱼强烈推荐上一条 /1 下一条

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1

GMT+8, 2020-6-2 20:33

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表