【发布时间】:2019-08-15 17:15:35
【问题描述】:
我被赋予了在 C 中执行以下任务:-
一年分为春、夏、秋、冬四个季节。虽然由于日历的构造方式,季节变化的确切日期每年都会略有不同,但我们将在本练习中使用以下日期:
赛季第一天
夏季 3 月 20 日
春季 6 月 21 日
9 月 22 日秋季
冬季 12 月 21 日
创建一个程序,从用户那里读取月份和日期。用户将输入月份的名称作为字符串,然后输入月份中的日期作为整数。
那么你的程序应该显示与输入日期相关的季节。
注意:输入月份的前三个字母,例如:Jan 代表一月,Feb 代表二月,依此类推......并且月份的第一个字母应该是大写。
我写了一个小测试代码来检查第一个条件,即Mar 20。
这是我的代码:-
#include <stdio.h>
#include <string.h>
int main(int argc, const char * argv[]) {
int date;
char month[3];
printf("Enter the month\n");
scanf("%s",month);
printf("Enter the date\n");
scanf("%d",&date);
int temp;
temp= strcmp(month,"Mar");
printf("output is %d\n",temp);
return 0;
}
我遇到的问题是,在输入 Mar 和 20 时,我得到了输出:- "output is 20"。而我想在我的测试代码中输出为 0。
另一个观察结果是,如果我将日期更改为任何随机数,我会得到它作为输出,而我想得到存储在 Temp 中的值,即 0。
如果我从代码中完全删除变量 date,我会得到正确的输出。那时我得到 0。
【问题讨论】:
-
Const char *argv[]??这不是一个有效的参数!
-
char month[3]只能存储 2 个字符,因为第三个字符是\0 -
month有 3 个字符的空间。 “Jan”需要 4 个字符的空间!你不能把 4 匹马放在 3 个马厩里! -
目前在 Xcode 上编码。默认情况下,它具有以下参数: -*argv[]
-
@machine_1:将
const添加到第二个参数不会使其无效。
标签: c