我是新来的,需要帮助我的这个代码。我必须计算3月和7月的平均温度。这些数组位于一个单独的文件夹中。这是我的代码。感谢
float sumofArray = 0;
int j = 0;
char Month;
float AverageMeanMarch = 0;
float AverageMeanJuly = 0;
printf("Please type the month for average mean temperature. (March/July) \n");
scanf_s("%c", &Month);
if (Month == "March" && Month == "march")
{
for (j = 0; j < 31; j++)
sumofArray = sumofArray + MeanMarch[j];
AverageMeanMarch = sumofArray / 31;
printf("The average mean temperature for the month of March is %.2f. \n", AverageMeanMarch);
}
else if (Month == "July" && Month == "july")
{
for (j = 0; j < 31; j++)
sumofArray = sumofArray + MeanJuly[j];
AverageMeanJuly = sumofArray / 31;
printf("The average mean temperature for the month of March is %.2f. \n", AverageMeanJuly);
}
else
{
printf("Invalid Month \n");
}
答案 0 :(得分:2)
您要使用错误的条件运算符,而不是&amp;&amp;,您要使用|| - 因为字符串不能同时是&#34;字符串&#34;和&#34;字符串&#34;在一个区分大小的生态系统中。
此外,您无法与&#39; ==&#39;进行字符串比较。运算符在c 中,通过使用你只进行指针比较,你想要的是&#34; strcmp(str1,str2)&#34;,如果字符串匹配则输出为0
所以,你的代码应该是:
if (strcmp(Month,"March") == 0 || strcmp(Month,"march") == 0)
并对7月进行相同的更改。
而且,正如评论中提到的那样,你宣布了“月”和“#39;作为单个字符,您要么将其初始化为char [],足以容纳一个月或char *,并使用malloc相应地分配内存。
此外,您使用带有%c的scanf作为参数,这意味着只会从用户输入中检索一个字符。
有关其他信息,请参阅:strcmp
答案 1 :(得分:0)
你没有将月份作为一个数组..你将月份作为一个char变量来存储单个值......