孤世星辰 发表于 2020-4-13 16:25:03

这个应该咋运行

#include<stdio.h>
#include<stdlib.h>

int main(int argc,char *argv[])
{
        int i;
        int sum;
        for(i=0;i<argc;i++)
        {
                sum+=atoi(argv);
        }
        printf("%d\n",sum);
        return 0;
}

没看懂小甲鱼那个咋运行的,是不是我代码错了??

sunrise085 发表于 2020-4-13 16:35:24

你的代码写错了吧?
argc的大小是argv参数个数+1,因为argc自己也算一个参数
所以for循环中应该是i<argc-1吧

孤世星辰 发表于 2020-4-13 16:57:01

sunrise085 发表于 2020-4-13 16:35
你的代码写错了吧?
argc的大小是argv参数个数+1,因为argc自己也算一个参数
所以for循环中应该是i




1.还是没对,也不知道怎么去运行这个文件





2这个argc包括本身我以为是下面那个会重复多打一个test。c,为啥要减一啊,小甲鱼他那个不是没减一么

人造人 发表于 2020-4-13 17:10:07

这样呢?

#include <stdio.h>

int main(int argc, char *argv[]) {
    for(int i = 0; i < argc; ++i) {
      printf("argv[%d] = %s\n", i, argv);
    }
    return 0;
}

sunrise085 发表于 2020-4-13 17:20:03

孤世星辰 发表于 2020-4-13 16:57
1.还是没对,也不知道怎么去运行这个文件




哦,应该是修改的是起始位置,而不是结束为止。刚刚说错了
#include<stdio.h>
#include<stdlib.h>

int main(int argc,char *argv[])
{
      int i;
      int sum;
      for(i=1;i<argc;i++)
      {
                sum+=atoi(argv);
      }
      printf("%d\n",sum);
      return 0;
}

sunrise085 发表于 2020-4-13 17:21:56

人造人 发表于 2020-4-13 17:10
这样呢?

你在那里写++i和i++没区别,因为for循环是执行玩一次循环后,才去修改的i
倒是可以写在循环内
#include <stdio.h>

int main(int argc, char *argv[]) {
    for(int i = 0; i < argc; ) {
      printf("argv[%d] = %s\n", i, argv[++i]);
    }
    return 0;
}

孤世星辰 发表于 2020-4-13 17:23:57

人造人 发表于 2020-4-13 17:10
这样呢?


好像运行不了,没怎么看懂,而且不是很理解这两个形参,比较模糊

孤世星辰 发表于 2020-4-13 17:28:15

sunrise085 发表于 2020-4-13 17:20
哦,应该是修改的是起始位置,而不是结束为止。刚刚说错了


还是有问题,好像出现的都是随机数

sunrise085 发表于 2020-4-13 17:32:31

孤世星辰 发表于 2020-4-13 17:28
还是有问题,好像出现的都是随机数

你的abc是啥啊?你认为应该有什么结果?

孤世星辰 发表于 2020-4-13 17:33:51

本帖最后由 孤世星辰 于 2020-4-13 17:38 编辑

sunrise085 发表于 2020-4-13 17:32
你的abc是啥啊?你认为应该有什么结果?

按照小甲鱼那个,我这个应该输出123??

sunrise085 发表于 2020-4-13 17:41:14

孤世星辰 发表于 2020-4-13 17:33
按照小甲鱼那个,我这个应该输出123??

使用5楼的程序。
输入参数123的时候输出不是123?
程序的功能就是把输入的几个参数通过atoi函数转为数字,并求和。
若执行该函数的时候输入几个数字参数,运行结果应该就是求和啊。

孤世星辰 发表于 2020-4-13 17:44:46

sunrise085 发表于 2020-4-13 17:41
使用5楼的程序。
输入参数123的时候输出不是123?
程序的功能就是把输入的几个参数通过atoi函数转为数 ...



但是我也不知道为啥他就运行不了。。。

人造人 发表于 2020-4-13 17:50:36

#include <stdio.h>

int main(int argc, char *argv[]) {
    int i;
    for(i = 0; i < argc; ++i) {
      printf("argv[%d] = %s\n", i, argv);
    }
    return 0;
}

孤世星辰 发表于 2020-4-13 17:58:56

本帖最后由 孤世星辰 于 2020-4-13 18:13 编辑

人造人 发表于 2020-4-13 17:50




这个运行成功了,他输出了每个的值,但是题目是要求要把这些加起来

然后我试了一下。。。这个是对的


人造人 发表于 2020-4-13 18:04:13

孤世星辰 发表于 2020-4-13 17:58
这个运行成功了,他输出了每个的值,但是题目是要求要把这些加起来

然后我试了一下。。。他又错 ...

一定要活学活用

#include <stdio.h>

int main(int argc, char *argv[]) {
    int i;
    for(i = 1; i < argc; ++i) {
      printf("argv[%d] = %s\n", i, argv);
    }
    return 0;
}

孤世星辰 发表于 2020-4-13 18:12:01

人造人 发表于 2020-4-13 18:04
一定要活学活用

好了好了,写出来了,少用了那个解析函数
页: [1]
查看完整版本: 这个应该咋运行