我是編程的初學者,這是我第一次來到這裏。我需要你的幫助來解決這個問題。正確的方式來傳遞C中的結構
現在,我想要解決的是寫一個代碼,打印出團隊中的足球運動員的信息和屬性。這裏有一個例子..
這是梅西的著名足球運動員..你可以在右下角有他的屬性看,每一個球員都有3個類別的屬性..技術屬性,心理屬性和身體素質。每個屬性的最大等級是20。
現在我在2種方式編碼這一點,我不知道哪一個是正確的方式,或者兩種方式是錯誤的,不好的編程..
第一種方式:
#include <stdio.h>
#include <string.h>
void Messi();
int main()
{
Messi();
return 0;
}
void Messi()
{
struct player10
{
char technical[150];
char mental[150];
char physical[150];
};
struct player10 messi;
strcpy(messi.technical, "Corners: 14\nCrossing: 15\nDribbling: 20\nFinishing: 20\nFirst Touch: 20\nFree Kick: 15\nHeading: 12\nLong shots: 17\nPassing: 19\nPenalty Taking: 18\nTechnique: 20\n");
strcpy(messi.mental, "Agression: 7\nAnticipation: 19\nBravery: 7\nComposure: 19\nConsentration: 14\nDecisions: 19\nDetermination: 20\nFlair: 20\nLeadership: 14\nOff The Ball: 18\nTeamWork: 13\nVision: 20\nWork Rate: 7\n");
printf("Messi Technical:\n%s \t Messi Mental:\n%s",messi.technical,messi.mental);
return;
}
第二種方式: -
#include <stdio.h>
#include <string.h>
struct player10
{
char technical[150];
char mental[150];
char physical[150];
};
int main()
{
struct player10 messi;
printf("Messi Attributes: \n");
Messi_attr(messi);
return 0;
}
int Messi_attr (struct player10 messi)
{
strcpy(messi.technical,"Corners: 14\nCrossing: 15\nDribbling: 20\nFinishing: 20\nFirst Touch: 20\nFree Kick: 15\nHeading: 12\nLong shots: 17\nPassing: 19\nPenalty Taking: 18\nTechnique: 20\n");
printf("\nTechnical Attributes:\n\n%s", messi.technical);
strcpy(messi.mental,"Agression: 7\nAnticipation: 19\nBravery: 7\nComposure: 19\nConsentration: 14\nDecisions: 19\nDetermination: 20\nFlair: 20\nLeadership: 14\nOff The Ball: 18\nTeamWork: 13\nVision: 20\nWork Rate: 7\n");
printf("\nMental Attributes:\n\n%s", messi.mental);
strcpy(messi.physical,"Acceleration: 18\nAgility: 20\nBalance: 17\nJumping Reach: 6\nNatural Fitness: 14\nPace: 15\nStamina: 13\nStrength: 8\n");
printf("\nPhysical Attributes:\n\n%s", messi.physical);
return 0;
}
我在做對吧?或者有一種更簡單的方法來對傳遞結構進行編碼? 任何幫助,將不勝感激..
就像現在一樣,最簡單的編碼方式是printf( 「\ n技術屬性:\ n \ n角色:14 \ n交叉:15 \ n' ...依此類推 – immibis
#1毫無意義#2更好但仍然錯誤 – John3136
寫一個函數來創建一個player10 struct和一個來打印它,把它們混合起來沒有任何意義,也可以使用struct作爲類型,'typedef struct {...} player10;'在一個haeder文件中或者在代碼的開始處會很好。 – kaetzacoatl