B 为什么是对的,C错在哪里了

问题遇到的现象和发生背景
问题相关代码,请勿粘贴截图
运行结果及报错内容
我的解答思路和尝试过的方法
我想要达到的结果

img

C语言规定main函数的参数只能有两个,习惯上这两个参数写为argc和argv。因此,main函数的函数头可写为: main (argc,argv)C语言还规定argc(第一个形参)必须是整型变量,argv( 第二个形参)必须是指向字符串的指针数组。
int main (int argc,char *argv[]){…}

int main (int argc,char **argv){…}

main参数,第一个是int类型,第二个是字符串数组char**,char*[],参数名无所谓的。

**1. C **
在 C89 中,main( ) 是可以接受的。Brian W. Kernighan 和 Dennis M. Ritchie 的经典巨著 The C
programming Language 2e(《C 程序设计语言第二版》)用的就是 main( )。不过在最新的 C99 标准中,只有以下两种定义方式是正确的:
int main( void )
int main( int argc, char *argv[] )
其中第一个argc表示参数的个数;第二个参数中argv[0]为自身运行目录路径和程序名,argv[1]指向第一个参数、argv[2]指向第二个参数……
**2. C++ **
C++98 中定义了如下两种 main 函数的定义方式:
int main( )
int main( int argc, char *argv[] )

#include <iostream>
#include <string>

using namespace std;

int main(int argc, char **argv)
{
    string str;
    cout<<"argc:"<<argc<<endl;
    for (int i = 0; i != argc; ++i)
    {
        cout << "arg[" << i << "]" << argv[i] << endl;
    }
    return 0;
}

由于main函数不能被其它函数调用, 因此不可能在程序内部取得实际值。那么,在何处把实参值赋予main函数的形参呢? 实际上,main函数的参数值是从操作系统命令行上获得的。