弑神者第二季动漫全集:子函数中那里有问题~!!??

来源:百度文库 编辑:高校问答 时间:2024/04/29 08:01:00
#include<stdio.h>
#include<stdlib.h>
struct date
{
int year;
int month;
int day;
}d1;
void hanzi(int *);
void main()
{
printf("以数字形式输入日期(年月日)\n");
printf("输入年<1900 - 2005>:");
scanf("%d",&d1.year);
printf("\n输入月:");
scanf("%d",&d1.month);
printf("\n输入日:");
scanf("%d",&d1.day);
if(d1.month==1||d1.month==3||d1.month==5||d1.month==7||d1.month==8||d1.month==10||d1.month==12)
{
if(d1.day<=31&&d1.day>=1)
{
hanzi(&d1.month);
printf("%d %c %d",d1.year,d1.month,d1.day);
}
else
{
printf("输入错误\n");
exit(0);
}
}

}
void hanzi(int *p)
{
char month_name[][10]={"一",
"二",
"三",
"四",
"五",
"六",
"七",
"八",
"九",
"十",
"十一",
"十二"};
printf("%d%s%d",(*p).year,month_name[(*p).month],(*p).day);
}
没有写完

struct date
{
int year;
int month;
int day;
}d1;
void hanzi(date *);
void main()
{
printf("以数字形式输入日期(年月日)\n");
printf("输入年<1900 - 2005>:");
scanf("%d",&d1.year);
printf("\n输入月:");
scanf("%d",&d1.month);
printf("\n输入日:");
scanf("%d",&d1.day);
if(d1.month==1||d1.month==3||d1.month==5||d1.month==7||d1.month==8||d1.month==10||d1.month==12)
{
if(d1.day<=31&&d1.day>=1)
{
hanzi(&d1);
printf("%d %d %d",d1.year,d1.month,d1.day);
}
else
{
printf("输入错误\n");
}
}

}
void hanzi(date *p)
{
char month_name[][10]={"一",
"二",
"三",
"四",
"五",
"六",
"七",
"八",
"九",
"十",
"十一",
"十二"};
printf("%d %s %d\n",p->year,month_name[p->month-1],p->day);
}

看你最后的输出语句,函数hanzi的输入参数应该是date 结构的指针吧!

将函数声明void hanzi(int *); 改为void hanzi(date *);
实现也做相应的修改试试吧!

子函数的参数类型改为struct date *p
建议将
printf("%d%s%d",(*p).year,month_name[(*p).month],(*p).day);
改为
printf("%d%s%d", p->year, month_name[p->month], p->day);

#include<stdio.h>
#include<stdlib.h>

typedef struct date
{
int year;
int month;
int day;
} d1;

void hanzi(struct date *);

void main()
{
struct date d1;
printf("以数字形式输入日期(年月日)\n");
printf("输入年<1900 - 2005>:");
scanf("%d",&d1.year);
printf("\n输入月:");
scanf("%d",&d1.month);
printf("\n输入日:");
scanf("%d",&d1.day);
if(d1.month==1||d1.month==3||d1.month==5||d1.month==7||d1.month==8||d1.month==10||d1.month==12)
{
if(d1.day<=31&&d1.day>=1)
{
hanzi(&d1);
printf("\n");
printf("%d %c %d",d1.year,d1.month,d1.day);
}
else
{
printf("输入错误\n");
exit(0);
}
}

}
void hanzi(struct date *p)
{
char month_name[][10]={" ","一", "二", "三", "四",
"五", "六", "七", "八",
"九", "十", "十一", "十二"};
printf("%d%s%d",p->year,month_name[(*p).month],(*p).day);
}

你自己试试吧!呵呵
应该可以了