我正在嘗試撰寫一個程式,當用戶輸入 1991 年到 2099 年之間的年份時顯示復活節。一切都很好,但是當我嘗試運行該程式時,它說有一個錯誤:賦值給陣列型別的運算式。我怎樣才能解決這個問題?我的代碼有什么問題?
#include <stdio.h>
#include <stdlib.h>
int main()
{
char month[50];
int year, day;
printf("Please enter a year between 1990 and 2099: ");
scanf("%d", &year);
int a = year-1900;
int b = a%19;
int c = (7*b 1)/19;
int d = (11*b 4-c)%29;
int e = a/4;
int f = (a e 31-d)%7;
int g = 25 - (d f);
if (g <= 0 )
{
month = "March";
day = 31 g;
}
else
{
month = "April";
day = g;
}
printf("The date is %s %d", month, day);
}
uj5u.com熱心網友回復:
陣列沒有賦值運算子。陣列是不可修改的左值。
要更改陣列的內容,例如使用標準字串函式strcpy。
#include <string.h >
//...
strcpy( month, "March" );
另一種方法是將變數 month 宣告為指標。例如
char *month;
或(那更好)
const char *month;
在這種情況下,你可以寫
month = "March";
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/336479.html
