zoukankan      html  css  js  c++  java
  • 第三周main参数传递-1 课堂测试

    课堂测试

    main参数传递-1 测试

    参考 http://www.cnblogs.com/rocedu/p/6766748.html#SECCLA 在Linux下完成“求命令行传入整数参数的和”
    
    注意C中main: int main(int argc, char *argv[]), 字符串“12” 转为12,可以调用atoi()
    
    求和函数 int sum(int N)放入sum.c中, main中调用sum(),main放入main.c中
    
    测试代码传入自己的8位学号
    
    上方提交代码
    
    附件提交运行测试截图
    

    main.c代码

    #include<stdio.h>
    #include<stdlib.h>               //定义此头文件,里面包含一些宏和通用工具函数,包含atoi()函数
    int sum(int N,int arr[]);        //声明sum函数
    int main(int argc,char *argv[])  //定义一个命令行总的参数个数,一个字符串数组
    {
    int result;                     
    int ch[argc];                    //定义一个数组
    printf("%d
    ",argc-1);
    for (int i=0;i<argc;i++)
    {
    ch[i]=atoi(argv[i]);            //调用atoi,将字符串转为整数,用ch[]来接受这个整数
    result=sum(argc,ch);             
    }
    printf("the result is %d
    ",result);
    return 0;
    }
    

    sum.c代码

    然后通过gcc执行,结果如下:

    问题与思考:

    中间想了一个问题,main.c函数里的for循环中,i能不能从1开始,然后范围变成i<=argc,输出的字符长度变由argc-1变为argc。将sum和main做了一点改动:

    结果运行如下,出现段错误。

    反思了一下,数组必须要从第0个开始,不能只能直接定义i=1。第一个测试没做出来,原因是自己对C语言数组和指针部分太薄弱了,课下要加强学习。

  • 相关阅读:
    MFC 的CLIST控件
    。。。。
    异常网
    27款经典的CSS框架 狼人:
    分析:从服务器出货情况看云发展情况 狼人:
    互联网是双刃剑 需合理把握 狼人:
    自由职业者和外包接单项目分析 狼人:
    Google发布Native Client首个开发工具包 狼人:
    MVC框架 EasyJWeb 2.0 发布 狼人:
    谷歌Chrome 11对早期开发者开放使用 狼人:
  • 原文地址:https://www.cnblogs.com/wyz-1995/p/7811604.html
Copyright © 2011-2022 走看看