zoukankan      html  css  js  c++  java
  • c语言笔试输入输出(数组测试)

    c语言定义数组:

    二维数组在定义的时候,可以不给出行数,但必须给出列数,二维数组的大小根据初始化的行数来定

    int d[ ][4] = {1,2,3,4,5};//合法 这叫局部初始化,也得给出初值。。。一般都是这样逐个初始化int[2][2]={1,2,3,4};
    每行有4列,则1234是一行,5是另一行,且后面有三个空间。所以一共8个int空间
    printf("sizeof(d)= %d ",sizeof(d)); 为32
     
    所以c语言的二维数组必须是方块形的矩阵???必须有列自动换行和补0。。
    java的二维数组可以是每行的列不对齐的那种。所以java必须有行,列无所谓。
     
    Java:(而且java推荐int[ ][ ] d 这样写)

    关于互联网的在线笔试输入输出:

     编译器环境说明:http://OJ.acmcoder.com/ExamNotice.html
    在线编程题刷题训练:http://www.acmcoder.com

    // C
    #include <stdio.h>
    int main()
    {
       int N, M;
        // 每组第一行是2个整数,N和M,至于为啥用while,因为是多组。
       while(scanf("%d %d", &N, &M) != EOF) {
          printf("%d %d
    ", N, M);
          // 循环读取“接下来的M行”
          for (int i=0; i<M; i++) {
            int a, b, c;
            // 每行是3个整数,a,b,c。
            scanf("%d %d %d", &a, &b, &c);
            printf("%d %d %d
    ", a, b, c);
          }
          // M行读取完了,就又要开始下一组了,去while那里。
       }
    }

    以上按下ctrl+z代表EOF即文件结尾则跳出while

    或者在while里面设置一个标志if(flag){break;} 跳出while

    那么上面这个二维数组如何输入赋值呢?

    a[i][0]=a居然不行?

    答案是抛弃把a,b,c赋值进来的想法,用scanf("%d",&sum[i][j]);

    #include <stdio.h>
    int main(int argc, char const *argv[])
    {
        int n,m;
       
        
        while(scanf("%d %d",&n,&m)!=EOF){
            printf("%d %d
    ",n,m);
            int a[m][2];//得放在这里才行!!!!!!!!!!!
            for (int i = 0; i < m; i++)
            {
                /* code */
                // int a,b,c;
                // scanf("%d %d %d",&a,&b,&c);
                // printf("%d %d %d
    ",a,b,c);
                for (int j = 0; j < 3; j++)
                {
                    /* code */
                    scanf("%d",&a[i][j]);//每次只能输入1个再换行
                }
                printf("
    ");
    
            }
    
              for (int i = 0; i < m; i++)
            {
               for (int j = 0; j < 3; j++)
               {
                   printf("a[%d][%d]:%-4d",i,j,a[i][j]);//100200
               } 
               printf("
    "); 
            } 
    
            if (m==5)
            {
                /* code */
                break;
            }   
        }
    
        // for (int i = 0; i < m; i++) a只能在m定以后才能放 所以要在while里面,所以这一段不能放外面了 a 会报错 
        //     {
        //        for (int j = 0; j < 2; j++)
        //        {
        //            printf("a[%d][%d]:%-4d",i,j,a[i][j]);//100200
        //        } 
        //        printf("
    "); 
        //     }
        printf("%d
    ",m);
        printf("over");
        return 0;
    }

    运行结果:

    1 2//输入
    1 2//打印
    1 2 3//输入

    2 3 4//输入

    a[0][0]:1 a[0][1]:2 a[0][2]:2//输出打印
    a[1][0]:2 a[1][1]:3 a[1][2]:4

    ^Z//输入
    over//输出


    c语言中是没有String头文件吗?目前只看到字符串用数组的形式输入,叫做字符数组

     最后这两个,{ }包起来的一行这样是挨个儿赋值,字符加单引号,数字就不用加单引号,都得加逗号。

    “ ”包起来也是一行,是直接字符串赋值。列不够补0

     字符串赋值会在末尾多占一个字节,当做一个字符串整体那么输入输出简单一些(因为字符得一个一个循环输入输出)

    这种字符还可以用%s占位符来输出字符串

     一行一行输出:hello和xxw

      char strr[15] = {"helloxxw"};
       printf("%s
    ",strr);
    
       char str[15];
       printf("input string:
    ");
       scanf("%s",str);
       printf("output:%s
    ",str);
       return 0;
    }

    运行结果:

    input string:
    helloworld
    output:helloworld

  • 相关阅读:
    JavaScript中的数据类型转换
    JavaScript中的变量
    set_uid set_gid stick_bit 软硬链接
    chmod、chown、umask、lsattr/chattr
    环境变量、cp、mv、cat 等命令
    相对和绝对路径 mkdir cd rm 等命令
    linux 系统 目录,以部分及相关命令
    单用户模式 和救援模式 、以及相互登陆(免密)
    putty 、xshell的使用 和 putty 、xshell、 shell 间免密登陆
    vmware NAT 网络出现问题的解决方法
  • 原文地址:https://www.cnblogs.com/gezi1007/p/13665332.html
Copyright © 2011-2022 走看看