可以的,這樣寫:

在永仁等地區(qū),都構建了全面的區(qū)域性戰(zhàn)略布局,加強發(fā)展的系統(tǒng)性、市場前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務理念,為客戶提供網(wǎng)站建設、成都做網(wǎng)站 網(wǎng)站設計制作按需網(wǎng)站策劃,公司網(wǎng)站建設,企業(yè)網(wǎng)站建設,品牌網(wǎng)站建設,全網(wǎng)整合營銷推廣,成都外貿(mào)網(wǎng)站制作,永仁網(wǎng)站建設費用合理。
test((RGBColor){0x0, 0x1, 0x2});
這個意思是把{0x0, 0x1, 0x2}強制轉化為RGBColor類型。從語法語義上面是沒問題的,在GCC編譯沒問題。
但是51上面沒實驗,按C標準能說得通,你可以試一試。
其實,結構名就是一個變量,由于你的形參和你的實參取名是一樣的。而且對于形參肯定會變
實參不會變。所以,你中間的maxA變量,其實是子函數(shù)的形參變了。但是你的實參沒變
因此結果沒變
改,對于子函數(shù)中,你在void Max_Element_Find(struct Max_Element* maxA,double *A,int n)
Max_Element_Find(maxA,A,n);這樣就好了
你有幾處錯誤,以下是修改后的代碼
#includestdio.h
#define M 3
struct date
{
int num;
char name[10];
char sex;
int age;
float score[5];
}student[M];
void f(struct date student[]);
void main()
{
int i,j;
printf("請按順序輸入學生數(shù)據(jù)\n");
for(i=0;iM;i++)
{
printf("姓名:");
scanf("%s",student[i].name);
printf("學號:");
scanf("%d",student[i].num);
printf("性別:");
scanf("%c%c",student[i].sex);
printf("年齡:");
scanf("%d",student[i].age);
printf("語文成績:");
scanf("%f",student[i].score[0]);
printf("數(shù)學成績:");
scanf("%f",student[i].score[1]);
printf("英語成績:");
scanf("%f",student[i].score[2]);
if(i!=2)
printf("請輸入下一個學生的數(shù)據(jù)\n");
}
/*for(i=0;iM;i++)*/
f(student);
for(i=0;iM;i++)
printf("第%d位同學的總分為%f,平均分為%f\n",i+1,student[i].score[3],student[i].score);
}
void f(struct date student[])
{
int i,j;
for(i=0;iM;i++)
{
for(j=0;j3;j++)
{
student[i].score[3]+=student[i].score[j];
student[i].score[4]=student[i].score[3]/3;
}
}
}
函數(shù)定義和聲明的參數(shù)應該是: int oid_check(struct snmp_seq sp, struct rmc1207 * ramp, int BUFFER_SIZE);
函數(shù)調(diào)用: flag=oid_check(sp, ramp, BUFFER_SIZE);
-------------------------------------------------------------------------------
在這里, ramp 是結構體數(shù)組的指針
gettimediff 參數(shù)類型不對,應該是 LPSYSTEMTIME ,而不是 SYSTEMTIME。其它地方也相應的改一改就行了。
#includestdio.h
struct math
{
float real;
float image;
};
void main()
{
struct math s1,s2,z;
printf("x的實部值和虛部值:");
scanf("%f %f",s1.real,s1.image);
printf("y的實部值和虛部值:");
scanf("%f %f",s2.real,s2.image);
z=add(s1,s2);
printf("相加的結果:z=%f+%fi\n",z.real,z.image);
}
struct math add(struct math s1,struct math s2)
{
struct math z;
z.real=s1.real+s2.real;
z.image=s1.image+s2.image;
return z;
}
回答的人還挺多,居然沒樓上的手快,看來我只有增加內(nèi)容了!
說明:
局部函數(shù)需要一個返回值,給z。
這道題可以有三種解決方法
一、用指針,讓局部函數(shù)返回值用指針傳遞,這樣局部函數(shù)可以寫void add...
二、把z定義成全局變量(就是在main函數(shù)外面定義z),然后局部函數(shù)里邊不要重新定義z,這樣可以把局部函數(shù)運算中的值保存下來。局部函數(shù)也可以寫void add...
三、用返回值,就是局部函數(shù)不要寫成void add...,讓他帶個返回值,返回給一個數(shù),就是上面的程序就ok了
回答
追問struct math add(struct math s1,struct math s2) 這里為什么要定義成結構體?
{
struct math z;
z.real=s1.real+s2.real;
z.image=s1.image+s2.image;
return z;
}
因為返回值是結構體
本文標題:c語言結構體做函數(shù)的問題,c語言結構體簡單例題
當前鏈接:http://chinadenli.net/article47/dsegohj.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供商城網(wǎng)站、服務器托管、營銷型網(wǎng)站建設、網(wǎng)站營銷、網(wǎng)站策劃、ChatGPT
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)