
VC++6.0用命令行参数判断某一年是平年还是闰年
#include<stdio.h>#include<string.h>voidmain(intargc,char*argv[]){inti,n;for(i=0,n=0;'...
#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 <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;这个语句???? 展开
3个回答
展开全部
#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 打错。
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 打错。
展开全部
dao_er正解...
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询