從鍵盤輸入10個學生的成績
1. 從鍵盤輸入10個學生的成績存儲在數組中,求成績最高者的序號和成績,且最高分為並列是兩人需要分別輸出
這里給出實現思路,你用哪種語言都可以。
1.讀取用戶電腦輸入的數字,讀取的內容包括姓名和成績和換行符,應判斷,輸入內容包含空格,空格之前是姓名,空格之後是成績,成績應該是數字型,讀取到換行符認為一個人的成績讀取完畢,開始讀取下一個人。如果輸入不滿足以上條件,應該在屏幕上提示輸入的問題,讓用戶重新輸入。
2.讀取之前,做一個全局變數,整形,每正確讀取一個成績,全局變數+1,記錄讀取的序號,一旦讀取錯誤,序號不增加。
3.做一個對象,存放學生信息,對象包括,姓名,成績,序號。每成功讀取一個學生信息,new一個新對象,保存學生信息。
4.做一個全局變數的數組,用來存放成績最高的學生,每成功讀取一個學生信息,從數組中取出最後一個對象,將對象的成績與輸入的成績做比較,如果數組中對象成績大於輸入成績,則不處理;如果相等,則再向數組中加入當前對象;如果小於,則將數組清空,將當前學生信息加入到數組中。比較之前,如果判斷當前數組的長度為0,則代表數組中沒有數據,不用比較,直接將當前學生信息加入到數組中即可。
2. 編寫程序從鍵盤輸入10個學生的某門課程的成績,找出成績最高的同學並輸出其成績(用指針方式進行查找)
#include<stdio.h>
#define N 10
void main() { float a[N],*p,*q; int i;
for ( i=0;i<N;i++ ) scanf("%f",&a[i]);
p=a; q=p+1; for ( i=1;i<N;i++,q++ ) if ( *p<*q ) p=q;
printf("最高成績:%.2f\n",*p);
}
3. C語言:編寫一個程序,從鍵盤輸入10個學生成績,求平均成績。
/*
C語言:編寫一個程序,從鍵盤輸入10個學生成績,求回平均答成績
*/
#include<stdio.h>
#defineN10
intmain()
{
floatarr[N]={0.0},s=0.0;
inti;
for(i=0;i!=N;++i){//輸入
scanf("%f",&arr[i]);
s+=arr[i];
}
printf("%0.2f ",s/N);//輸出平均數
return0;
}
4. 用c語言的fun函數編寫程序:從鍵盤輸入10個學生的成績,統計及格(60分及60分以上的)人數
代碼如下:
#include <stdio.h>
//判斷及格人數
int fun(int a[10]){
int i, count=0;
for (i = 0; i < 10; ++i)
if(a[i]>=60) count++;
return count;
}
int main(){
int a[10],i;
printf("請輸入10名學生的成績: ");
for(i = 0;i < 10; i++)
scanf("%d",&a[i]);
int count = fun(a);
printf("及格的人數為:%d ", count);
return 0;
}
程序運行結果:內
(4)從鍵盤輸入10個學生的成績擴展閱讀
C語言中對數容字的統計:可以通過循環數組的方式去一個一個的比較數字的大小,然後進行統計。首先可以通過循環的方式讀取每個數字,然後存到數組中。把數組傳入到fun函數,在循環數組對每個數字進行比較統計。
5. 編程實現:從鍵盤輸入10個學生的成績,統計並輸出80分以上學生的人數。要求:①定義並使用自定義函數
如圖
//編程實現:從鍵盤輸入10個學生的成績,統計並輸出80分以上學生的人數。
//要求:①定義並使用自定義函數intfun(floatarr[],intn)實現統計80分以上人數的功能。
//②輸入輸出功能由主函數實現。
//(思考:①如何統計不及格學生的人數。②如何求出平均分
#include<stdio.h>
#include<malloc.h>
typedefstructfun_Total{
intgoodNUM; //80分以上人數
intfailNUM; //不及格人數
floatave; //平均分
}fun_Total;
fun_Total*fun(floatarr[],intn)
{
inti;
fun_Total*R=(fun_Total*)malloc(sizeof(fun_Total));
R->goodNUM=0;R->failNUM=0;R->ave=0;
for(i=0;i<n;i++){
R->ave+=arr[i];
if(arr[i]>80)R->goodNUM++; //80以上即>80
elseif(arr[i]<60)R->failNUM++;
}
R->ave/=n;
returnR;
}
voidmain()
{
inti=0,n=10;
floatarr[10];
fun_Total*RT;
printf("請輸入學生的分數(按回車完成每個人的成績輸入)
");
for(i=0;i<n;i++){
printf("第%d名學生分數=",i+1);
scanf("%f",&arr[i]);
if(arr[i]>100||arr[i]<0)
{
printf("輸入非法! ");
i--;
}
}
RT=fun(arr,n);
printf("
80分以上的學生有%d人
",RT->goodNUM);
printf("
不及格的學生有%d人
",RT->failNUM);
printf("
平均分為%f
",RT->ave);
free(RT);
}
6. 6.編寫程序,由鍵盤任意輸入10個學生的成績,分別統計各分數段的百分比。
#include<stdio.h>
#include<stdlib.h>
int main(void)
{
int i,a[10];
float b,c,n,e,x;
for(i=0;i<10;i++)
scanf("%d",&a[i]);
b=0;
c=0;
n=0;
e=0;
x=0;
for(i=0;i<10;i++)
{
if(a[i]>=90)b++;
else if(a[i]>=80 && a[i]<90)c++;
else if(a[i]>=70 && a[i]<80)n++;
else if(a[i]>=60 && a[i]<70)e++;
else
x++;
}
b=0.1f*b;
c=0.1f*c;
n=0.1f*n;
e=0.1f*e;
x=0.1f*x;
printf("優、復良、中制、及格、不及格的人數所佔比例分別為;%f,%f,%f,%f,%f\n",b,c,n,e,x);
system("pause");
return 0;
}
7. c語言從鍵盤輸入10個學生的成績,建立一個一維數組,求學生的平均成績
#include<stdio.h>
void main(){
float result[10],avg=0,sum=0;
int i=0;
for(i=0;i<10;i++){
printf("請輸入第%d個學生的成績:回",(i+1));
scanf("%f",&result[i]);
while(result[i]<0){
printf("成績不能小於0,請重新輸入");
printf("請輸入第%d個學生的成績:",(i+1));
scanf("%f",&result[i]);
if(result[i]>0){
sum+=result[i];
continue;
}
}
sum+=result[i];
}
avg = sum / 10;
printf("這10個學生的平答均成績是:%f",avg);
}
8. C語言編程,從鍵盤輸入10個學生的成績,試統計出他們的成績總和及平均值
#include <stdio.h>
#define MAX 10
struct student {
char no[10];
char name[10];
float score[3];
}stu[MAX];
float ave_course[3] = {0};
float ave_student[MAX] = {0};
int max_ave_i = 0; // 存儲平均分最高的學生索引
int max_course_i[3] = {0}; //存儲單科分數,最高的學生索引
// 錄入學生成績
void input(int n) {
int i;
for(i=0; i<n; i++) {
scanf("%s %s", stu[i].no,stu[i].name);
scanf("%f %f %f", &stu[i].score[0], &stu[i].score[1], &stu[i].score[2]);
}
}
// 計算平均成績
void average(int n){
int i,j;
float max_ave = 0.0f;
float max_course[3] = {0};
// 計算每門課的平均成績
for(i=0; i<n; i++) {
for(j=0; j<3; j++) {
ave_course[j] += stu[i].score[j];
if(max_course[j]<stu[i].score[j]){
max_course[j]<stu[i].score[j];
max_course_i[j] = i;
}
}
}
for(j=0; j<3; j++) {
ave_course[j] /= n;
}
// 計算每個學生的平均成績
for(i=0; i<n; i++) {
for(j=0; j<3; j++) {
ave_student[i] += stu[i].score[j];
}
ave_student[i] /= 3;
if(max_ave < ave_student[i]) {
max_ave = ave_student[i];
max_ave_i = i;
}
}
}
void main () {
int i,j;
printf("請輸入學生的學號 姓名 語文 數學 英語");
input(MAX);
average(MAX);
printf("\n課程的平均成績是: %6.2f %6.2f %6.2f\n",ave_course[0],ave_course[1],ave_course[2]);
printf("\n學生的平均成績是: \n");
for(i=0; i<MAX; i++) {
printf(" %s %s %6.2f\n", stu[i].no, stu[i].name, ave_student[i]);
}
printf("平均分,最高的學生:\n");
printf(" 學號=%s, 姓名=%s, 平均分=%6.2f:\n", stu[max_ave_i].no, stu[max_ave_i].name, ave_student[max_ave_i]);
printf("語文,最高分的學生:\n");
i=max_course_i[0];
printf(" 學號=%s, 姓名=%s, 成績=%6.2f:\n", stu[i].no, stu[i].name, stu[i].score[0]);
printf("數學,最高分的學生:\n");
i=max_course_i[1];
printf(" 學號=%s, 姓名=%s, 成績=%6.2f:\n", stu[i].no, stu[i].name, stu[i].score[1]);
printf("英語,最高分的學生:\n");
i=max_course_i[2];
printf(" 學號=%s, 姓名=%s, 成績=%6.2f:\n", stu[i].no, stu[i].name, stu[i].score[2]);
getchar();
getchar();
}
9. c語言。從鍵盤輸入10個學生成績,求最高和最低分
這個同學.
代碼我就不給你了但是我可以給你把思路理一下
首先
定義從鍵盤接受的數組.
然後通過循環當然循環變數就是這個數組的長度.
可在外部定義一個最大和最小數
在循環中判斷如果當前循環的這個數大則直接給大的賦值
如果小就給小的賦值.
列印輸出就好.
10. 編程實現:從鍵盤輸入10個學生的成績,計算出平均分,並輸出低於平均分的學生成績大神們幫幫忙
#include<stdio.h>
int main()
{
int i,j;
float students[10];
float sum=0,average;
for(i=0;i<10;i++)
{
printf("請輸入的學生的成績:");
scanf("%f",&students[i]);
sum=sum+students[i];
}
average=sum/10;
for(i=0;i<10;i++)
if (students[i]<average)
printf("這幾個同學低於平均分的成績為為:%f ",students[i]);
printf("平均成績為:%.2f ",average);
return 0;
}
(10)從鍵盤輸入10個學生的成績擴展閱讀:
int a[10]; 說明整型數組a,有10個元素。若要表示第10個元素,則使用a[9]。第一個則是a[0]。
float b[10],c[20]; 說明實型數組b,有10個元素,實型數組c,有20個元素。
char ch[20]; 說明字元數組ch,有20個元素。
特點:
1,數組是相同數據類型的元素的集合。
2,數組中的各元素的存儲是有先後順序的,它們在內存中按照這個先後順序連續存放在一起。
3,數組元素用整個數組的名字和它自己在數組中的順序位置來表示。例如,a[0]表示名字為a的數組中的第一個元素,a[1]代表數組a的第二個元素,以此類推。