VC++6.0用命令行参数判断某一年是平年还是闰年

来源:百度知道 编辑:UC知道 时间:2024/05/13 05:43:19
#include <stdio.h>
#include <string.h>
void main(int argc,char *argv[])
{int i,n;
for(i=0,n=0;'0'<=*(argv[1]+i)&&*(argv[1]+i)<='9'&&i<strlen(argv[1]);i++)
n=10*n+(*(argv[1]+i)-'0');
if(n%4==0&&n%100!=0||n%400==0)
printf("%d是闰年\n",n);
else
printf("%d是平年\n",n);
}

请问这个程序哪里出错了,编译成功,运行失败,应该怎么改???
一楼atoi函数不是在头文件stdlib吗,怎么用windows也行;还有为什么要加上if (argc < 2) return;这个语句????

#include <stdlib.h>
void main(int argc,char *argv[])
{
if (argc < 2) return;
int n = atoi(argv[1]);
if (((n % 4) == 0 && (n % 100) != 0) || (n % 400) == 0)
printf("%d是闰年\n",n);
else
printf("%d是平年\n",n);
}

补充说明:
1.如果直接运行程序,不加任何参数,那么 argc 就是 1。argv[1] 就是空指针,如果假定用户指定了正确的参数而不做任何检查,是不符合编程规范的。
2.windows.h 是建议包含的库。stdlib 是正确的,stdio 打错。

调用的时候需要输入参数,比如程序名为aa.exe 则在调用的时候应为:aa.exe 2000。因为直接点集成环境中的执行时没用输入参数,当然访问了非法地址出错。

请问在JAVA中,用命令行传递参数是什么意思? 用命令行关机 C语言编程:用命令行参数完成大小写字母的转换,转换方式取决于所在命令行的串名 用命令行新建用户和组? 用命令行的方式打开文件夹 XP用命令行怎么登陆BBS? 如何用命令提示符 怎么用命令格式化 局域网长用命令 怎么用命令杀毒