如何用C語言輸入10個同學三門課的成績並輸出,可以指導一下思路嗎?
上課認真聽,自己先寫一邊嘗試,實在不會了再來問,編程最重要的自己動手,不要習慣性伸手要答案
只寫了基本的輸入輸出,後續需要什麼功能自己加
#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循環就可以了吧?
可能是我把這個問題想的太簡單了
建個結構體,弄個自定義的比較函數,然後隨便選個排序排就好了
推薦閱讀: