首先,让我通过问好!这是我第一次使用这个资源(...并且可能不是我的最后一个)。话虽如此,我会尽我所能解释我的问题。这里没有'...日历作业
该任务是使用C++给定一个二维数组,给定一个月,一年和一周中的日期以便开始使用日历。我设法尽可能地从用户,年份和开始日期收集天数(对于一个月),但是我无法包装头,无法正确填充二维数组而无法获得读取权限错误,如下所示:
“在Calendar.exe中0x01288B7F引发的异常:0xC0000005:访问冲突读取位置0x00290000。”
输出的一个例子可以看这里:
“输入月份:二月
进入一年2016
输入一周中的一天:周六 一个 乙 d Ë ˚F G 周日周一周二周三周四周五周六 H
8 9 10 11 12 13 14 H
15 16 17 18 19 20 21 H
22 16 17 18 19 20 21 H
22 23 24 25 26 27 28 H
29 23 24 25 26 27 28 H
29 23 24 25 26 7 1409053844ħ
0 0 2130567168 7 -858993460 -858993460 -858993460ħ
-858993460 3930364 -858993460 -858993460 3930360 -858993460 -858993460^h
3930364 -858993460 -858993460 -858993460 -858993460 -858993460 -858993460 H”
正如你所看到的,它就会朝端靠不住,甚至在它开始吐出垃圾之前。
有问题的功能是在这里:
void displayMonth(int leapRes, int start)
{
int month[6][7] = { 0, 0 };
cout << "F" << endl;
for (int i = 0; i < 6; i++)
{
for (int j = month[i][j]; j < leapRes; j++)
{
month[i][j] = j;
}
}
cout << "G" << endl;
cout << "Sun Mon Tues Wed Thurs Fri Sat" << endl;
for (int i = 0; i < 6; i++)
{
for (int j = month[i][start]; i < leapRes; j++)
{
if (j % 7 == 0)
{
cout << "H" << endl;
cout << "\n" << month[i][j] << " ";
}
else
cout << month[i][j] << " ";
}
}
}
我可以提供进一步的解释,我所提供的代码的任何部分。
再说一次,不要对我太粗糙。我在别处寻找可能的线索,告诉我如何以最佳的方式驾驭这项工作,而且运气不错。
编辑:
因为我已经做了一些修改功能代码,而它的填充与天的正确数量的阵列,它既不开始在正确的位置排列或对准网格格式。
void displayMonth(int numDays, int start)
{
const int ROW = 6;
const int COL = 7;
int month[ROW][COL] = { 0, 0 };
int k = 1;
cout << "F" << endl;
//trying to populate the 2D array
for (int i = 0; i < ROW; i++)
{
for (int j = 0; j < COL; j++)
{
month[i][j] = k;
k++;
//things like this are just bench checking
cout << "this is position " << j << " in the array: " << month[i][j]
<< endl;
system("pause");
//again, bench checking
cout << "1" << endl;
if (k >= numDays)
break;
}
}
cout << "G" << endl;
cout << "Sun Mon Tue Wed Thu Fri Sat" << endl;
//attempting to print said array
for (int i = 0; i < ROW; i++)
{
for (int j = 0; j < COL; j++)
{
if (month[i][j] <= 0)
{
//cout << "2" << endl;
cout << "---";
}
else
{
//cout << "3" << endl;
cout << setw(3) << month[i][j] << " ";
}
}
}
此:'为(INT J =每月[i] [j];Ĵ
UnholySheep
当我将j更改为0或开始日期时,循环在开始新行后停止迭代,并重复之前的值。 –
也是这样的:'for(int j = month [i] [start]; i
UnholySheep