C语言:结构体成员能够做形参吗?
写一个函数days:计算该日在本年中是第几天?由主函数将年月日传递给函数,计算后将日子输出传回主函数输出悬赏分:0-离问题结束还有1天10小时下面的程序是我写的,但是有错...
写一个函数days:计算该日在本年中是第几天?由主函数将年月日传递给函数,计算后将日子输出传回主函数输出
悬赏分:0 - 离问题结束还有 1 天 10 小时
下面的程序是我写的,但是有错误,就是void days(int judge.year,int judge.month,int judge.day)/*这句有错误,结构体成员作形参怎样初始化啊?*/
大家帮我看看还有什么地方错了,谢谢。
struct student{int year,month,day;}judge;
/*计算日期位于该年的第几天*/
void days(int judge.year,int judge.month,int judge.day)
{
int i,num=0;
int monthday[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
if(judge.year%4==0)
{
for(i=1;i<judge.month;i++)
{
if(judge.month>2)
{
num++;
}
num+=monthday[i];
}
num+=judge.day;
}
else
{
for(i=1;i<judge.month;i++)
num+=monthday[i];
num+=judge.day;
}
printf("NO:%d",num);
}
main()
{
int a,b,c;
printf("请输入日期:");
scanf("%d %d %d",&a,&b,&c);
days(a,b,c); 展开
悬赏分:0 - 离问题结束还有 1 天 10 小时
下面的程序是我写的,但是有错误,就是void days(int judge.year,int judge.month,int judge.day)/*这句有错误,结构体成员作形参怎样初始化啊?*/
大家帮我看看还有什么地方错了,谢谢。
struct student{int year,month,day;}judge;
/*计算日期位于该年的第几天*/
void days(int judge.year,int judge.month,int judge.day)
{
int i,num=0;
int monthday[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
if(judge.year%4==0)
{
for(i=1;i<judge.month;i++)
{
if(judge.month>2)
{
num++;
}
num+=monthday[i];
}
num+=judge.day;
}
else
{
for(i=1;i<judge.month;i++)
num+=monthday[i];
num+=judge.day;
}
printf("NO:%d",num);
}
main()
{
int a,b,c;
printf("请输入日期:");
scanf("%d %d %d",&a,&b,&c);
days(a,b,c); 展开
展开全部
结构体可以作为函数的形参。例如
#include <stdio.h>
/* 定义Student 结构类型 */
typedef struct {
char *name;
int age;
} Student;
/* printStudent 函数的参数类型为 Student */
void printStudent(Student stu) {
printf("Student's Name:%s; Student's Age:%d\n",
stu.Name, stu.Age);
return;
}
void main() {
/* 定义Student类型变量 s*/
Student s;
/* 赋初值 */
s.Name = "ZhangSan";
s.Age = 20;
/*调用 printStudent函数,函数的参数为Student结构变量s*/
prirntStudent(s);
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
如果函数定义中需要使用某中聚集型数据类型中的多个元素,一般用此聚集型数据类型作形参(数组用指针,结构体可以用指针也可以用其本身)
如果函数定义中只需要使用某中聚集型数据类型中的某一个元素,一般用此元素的数据类型作形参
#include <iostream>
using namespace std;
struct Date
{
int year;
int month;
int day;
};
void ShowDate(Date &d)
{
cout<<"引用传参!"<<endl;
cout<<"年份:"<<d.year<<endl
<<"月份:"<<d.month<<endl
<<"天数:"<<d.day<<endl;
}
void ShowDate(Date *d)
{
cout<<"指针传参!"<<endl;
cout<<"年份:"<<d->year<<endl
<<"月份:"<<d->month<<endl
<<"天数:"<<d->day<<endl;
}
//个人觉得,形参就是体现实参的类型和个数而已。
//如果要数组元素做形参,直接定义个和数组元素
//同类型的形参不就行了吗?不是很明白这句话。
void ShowDate(int year,int month,int day)
{
cout<<"结构体成员传参!"<<endl;
cout<<"年份:"<<year<<endl
<<"月份:"<<month<<endl
<<"天数:"<<day<<endl;
}
int main()
{
Date date={2013,11,18};
ShowDate(date);
ShowDate(&date);
ShowDate(date.year,date.month,date.day);
return 1;
}
如果函数定义中只需要使用某中聚集型数据类型中的某一个元素,一般用此元素的数据类型作形参
#include <iostream>
using namespace std;
struct Date
{
int year;
int month;
int day;
};
void ShowDate(Date &d)
{
cout<<"引用传参!"<<endl;
cout<<"年份:"<<d.year<<endl
<<"月份:"<<d.month<<endl
<<"天数:"<<d.day<<endl;
}
void ShowDate(Date *d)
{
cout<<"指针传参!"<<endl;
cout<<"年份:"<<d->year<<endl
<<"月份:"<<d->month<<endl
<<"天数:"<<d->day<<endl;
}
//个人觉得,形参就是体现实参的类型和个数而已。
//如果要数组元素做形参,直接定义个和数组元素
//同类型的形参不就行了吗?不是很明白这句话。
void ShowDate(int year,int month,int day)
{
cout<<"结构体成员传参!"<<endl;
cout<<"年份:"<<year<<endl
<<"月份:"<<month<<endl
<<"天数:"<<day<<endl;
}
int main()
{
Date date={2013,11,18};
ShowDate(date);
ShowDate(&date);
ShowDate(date.year,date.month,date.day);
return 1;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询