Mình đang làm một chương trình về chuyển đổi ngày trong năm và ngày trong tháng. Chương trình như sau:
#include <iostream>
using namespace std;
static char* name[] = { "Invavlid month", "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" };
static int daytab[][13] = { { 0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 },
{ 0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 } };
int day_of_year(int year, int month, int day)
{
int leap = (year % 400 == 0 || (year % 4 == 0 && year % 100 != 0)) ? 1 : 0;
for (int i = 1; i < month; i++)
day += daytab[leap][i];
return day;
}
void day_of_month(int year, int day_of_year, int &month, int &day)
{
month = 1;
int leap = (year % 400 == 0 || (year % 4 == 0 && year % 100 != 0)) ? 1 : 0;
while (day_of_year > daytab[leap][month])
{
day_of_year -= daytab[leap][month++];
}
day = day_of_year;
}
int month_search(char **argv)
{
cout << *argv;
for (int i = 1; i < 13; i++)
if (strcmp(*argv, name[i])==0)
return i;
}
int main(int argc, char* argv[])
{
//Specify Command-line
if (!strcmp(*++argv,"day_of_year"))
{
//Form: day_of_year 2015 May 12
int day = day_of_year(atoi(*++argv), month_search(*++argv), atoi(*++argv));
cout << "This is the " << day << "-th day of year.";
}
else if (!strcmp(*argv,"day_of_month"))
{
//Form: day_of_month 2015 36
int month, day;
day_of_month(atoi(*++argv), atoi(*++argv), month, day);
cout << "The day is " << day << " of " << name[month];
}
else
cout << "Invalid command";
cout << endl;
system("pause");
}
Nhưng không hiểu sao ở hàm day_of_month thì việc truyền tham số argv (ở đây mình định truyền tên tháng vào vd: “May” vào hàm month_search) bị lỗi. Mong mọi người giúp mình tìm vấn đề ở bài này với. Cảm ơn mọi người.
P/s: Mọi người thông cảm vì mình viết hơi khó hiểu chút nhưng mình thực sự cần giúp đỡ!

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?