上課認真聽,自己先寫一邊嘗試,實在不會了再來問,編程最重要的自己動手,不要習慣性伸手要答案

只寫了基本的輸入輸出,後續需要什麼功能自己加


#include &
struct Student
{
double math;
double eng;
double chinese;
double avg;
char name[32];
};
int main()
{
struct Student s[5];
char nameSeed[] = {A, B, C, D, E};
for (int i = 0; i &< 5; i++) { s[i].name = nameSeed[i]; printf("請輸入數學,英語,語文成績 "); scanf("%lf%lf%lf", s[i].math, s[i].eng, s[i].chinese); s[i].avg = (s[i].math + s[i].eng + s[i].chinese) / 3; } printf("姓名 數學 英語 語文 平均成績 "); for (int i = 0; i &< 5; i++) { printf("%s%lf%lf%lf%lf", s[i].name, s[i].math, s[i].eng, s[i].chinese, s[i].avg); } return 0; }


用結構體聲明一個學生的結構,包括學生的姓名和3門課的成績,然後創建結構體數組,用循環輸入成績和姓名,最後遍歷一下就行了

#include &

#include &

#define MAX 12//數組最大容量

#define NUM 10//學生人數

char* sget_s(char* arr, int n);//函數申明

/* sget_s 函數處理輸入的字元串,把fgets函數加的換行符去掉,並清空緩衝區 */

typedef struct STUDENT {

char name[MAX]; //學生姓名

int a; //分數

int b; //分數

int c; //分數

}student;

int main(void)

{

int cout = 0;//計數器

student per[NUM];//創建結構體數組

puts("請輸入選手姓名(輸入Enter退出):");

/*

cout 計算選手數,當人數大於NUM循環停止

sgets_s 函數輸入選手姓名,且輸入不可以為空

最後一個表示結構體數組 姓名的第一個字元不可以為空

*/

while (cout &< NUM sget_s(per[cout].name, MAX) != NULL per[cout].name[0] != )

{

puts("請輸入xxx成績:");

scanf("%d", per[cout].a);

puts("請輸入學生xxx成績:");

scanf("%d", per[cout].b);

puts("請輸入學生xxx成績:");

scanf("%d", per[cout].c);

while (getchar() !=
)

continue; //這裡while循環清空scanf輸入後留在緩衝區的換行符

cout++;

if (cout &< NUM) //如果還沒有添加完所有選手信息,循環繼續

puts("請輸入選手姓名(輸入Enter退出):");

}

if (cout == 0)//如果cout為0,說明沒有添加數據

{

puts("沒有數據");

}

else//否則列印數據

{

for (int i = 0; i &< cout; i++)

{

printf("學生姓名:%s 某某成績:%d :某某成績:%d 某某成績:%d
",

per[i].name, per[i].a,per[i].b, per[i].c);

}

}

return 0;

}

char* sget_s(char* arr, int n)

{

char* p;

char* find;

p = fgets(arr, n, stdin);

if (p)

{

find = strchr(arr,
);

if (find)

{

*find = ;

}

else

{

while (getchar() !=
)

continue;

}

}

return p;

}


用數組與for循環搭配使用可以實現哦

float a[10];

int i;

for(i=0;i&<10;i++)

{

printf("請輸入第%d個數:",(i+1));

scanf("%f",a[i]);

}

for(i=0;i&<10;i++)

{

printf("請第%d個數為%f",(i+1),a[i]);

}

主體思路就是這樣,希望能給你帶來幫助。


我覺得倆數組和一個for循環就可以了吧?

可能是我把這個問題想的太簡單了


建個結構體,弄個自定義的比較函數,然後隨便選個排序排就好了


推薦閱讀:
相关文章