① c語言編程要求輸入全班3門課的成績,輸出全班的總成績以及平均分還有每個人的總分跟平均分
建議建立二維數組,保留同學信息和成績。通過循環完成
終於完成了。。。。為了方便測試,暫且定為4個人
#include <stdio.h>
#define N 4
main()
{
int i,j;
float stu[N][3],sum[N],avg[N],total=0;
for(i=0;i<N;i++)
{
printf("\n請輸入學號%d三門課成績:",i+1);
for(j=0;j<3;j++)
{
scanf("%f",&stu[i][j]);
}
}
for(i=0;i<N;i++)
{
sum[i]=0;
for(j=0;j<3;j++)
{
sum[i]+=stu[i][j];
}
avg[i]=sum[i]/3;
}
for(i=0;i<N;i++)
{
printf("第%d位總分為%f,平均分為%f\n",i+1,sum[i],avg[i]);
total+=sum[i];
}
printf("全班級總分為%f,平均分為%f",total,total/(N*3));
}
② C語言 輸入全班成績 統計優良合格不及格人數,並輸出總分平均分,用函數實現
你要手動輸入成績3遍嗎...
輸入一遍保存到數組里多省事
③ C語言 輸入全班學生成績,統計優良合格不及格人數,並輸出總分平均分,用函數實現
#include <stdio.h>
void main()
{
int n=0,i,e=0,x=0,d=0,v=0;
double s=0;
int a[100],y[100],l[100],h[100],b[100];
printf("請輸入學生的人數:");
scanf("%d",&n);
printf("請輸入學生的成績:");
for(i=1; i<=n; i++)
{
scanf("%d",&a[i]);
s=s+a[i];
if(a[i]<60 && a[i]>0){
b[e]=a[i];
e++;
}else if(a[i]>=60 && a[i]<70){
h[x]=a[i];
x++;
}else if(a[i]>=70 && a[i]<80){
l[d]=a[i];
d++;
}else if(a[i]>=80 && a[i]<=100){
y[v]=a[i];
v++;
}
}
printf("
優的學生成績為:
");
for(i=0; i<v; i++)
{
printf(" %d",y[i]);
}
printf("
良的學生成績為:
");
for(i=0; i<d; i++)
{
printf(" %d",l[i]);
}
printf("
合格的學生成績為:
");
for(i=0; i<x; i++)
{
printf(" %d",h[i]);
}
printf("
不合格的學生成績為:
");
for(i=0; i<e; i++)
{
printf(" %d",b[i]);
}
s=s/n;
printf("
平均成績為:%.1f
", s);
}
④ c語言中輸入全班的三門課成績輸出每人各科平均成績
#include<stdio.h>
intmain(){
doublemark[4][3],aver[4],high[3]={0};
inti,j;
for(i=0;i<4;i++){
doubleall=0.0;
printf("請輸入%c的三門成績: ",'A'+i);
for(j=0;j<3;j++){
scanf("%lf",&mark[i][j]);
high[j]=high[j]<mark[i][j]?mark[i][j]:high[j];
all+=mark[i][j];
}
printf("%c同學的平均成績是:%.2lf ",'A'+i,all/3);
}
printf("三科的最高分分別為:%.2lf%.2lf%.2lf",high[0],high[1],high[2]);
return0;
}
⑤ 用C語言求一個班的平均成績,但是這個班人數未知,怎麼寫這個程序呀大神們幫幫忙~謝啦~
C語言程序源代碼。輸入一個班全體學生的成績,把不及格的學生成績輸出,並求幾個學生的平均成績。(這個或許對你有幫助)
#include<stdio.h>
#define N 4 //宏定義,初始化班級學生人數,可通過修改N的初值改變
int main()
{
int a[N],b[N]={0},i=0,j=0,sum=0;
float ave=0.0;
printf("please input scores:\n");
for(i=0;i<N;i++) //輸入學生成績
scanf("%d",&a[i]);
printf("input over!!!please waiting.... \n");
printf("input scores is:\n");
for(i=0;i<N;i++) //輸出所以學生成績
printf("%d ",a[i]);
putchar('\n');
printf("the underline's scores is:\n");
for(i=0;i<N;i++) //測試成績是否及格,默認為低於60分的成績
{
if(a[i]<60)
{
b[j++]=a[i]; //將不及格人數及成績村入b數組中
printf("%d ",a[i]);
}
}
putchar('\n');
for(i=0;i<j;i++) //計算出不及格人數的總成績
sum+=b[i];
ave=(sum*0.1/j)*10; //計算不及格同學的平均成績,並將其轉換為實型數據
printf("avverage scores is:\n");
printf("%f ",ave); //輸出平均成績
putchar('\n');
}
⑥ C語言編程,兩個班,輸入每個班成績,求每個班平均成績,並求每個班低於80分的人數(人數分數自己設)
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#defineCOUNT50//每班人數上限設定
//定義一個班級人數及成績的結構體類型
typedefstructcl
{
intnumbers;//班級人數
intscores[COUNT];//每人分數
}CLASS;
//設置班級的人數
voidset_number(CLASS*cls,intnumber);
//設置班級人員的成績
voidset_scores(CLASS*cls,int*scores);
//獲取班級的平均成績
floatget_average(constCLASS*cls);
//隨機生成班級的成績信息
voidget_score(int*scores,intn);
//列印成績信息
voidprint_scores(constint*scores,intn);
//獲取班級低於80分的人數
intget_numbers_under80(constCLASS*cls);
intmain()
{
CLASScls1,cls2;//創建兩個班級對象
intscores[COUNT]={0};//定義存儲成績的數組
intnums1=0,nums2=0;//定義班級人數變數
//接收並校驗班級的人數信息
printf("請輸入班級1的人數(50以內):");
scanf("%d",&nums1);
while(nums1>COUNT)
{
printf("人數輸入錯誤,請重新輸入:");
scanf("%d",&nums1);
}
printf("請輸入班級2的人數(50以內):");
scanf("%d",&nums2);
while(nums2>COUNT)
{
printf("人數輸入錯誤,請重新輸入:");
scanf("%d",&nums2);
}
//設置班級1的相關信息
get_score(scores,nums1);
printf("班級1的成績信息: ");
print_scores(scores,nums1);
set_number(&cls1,nums1);
set_scores(&cls1,scores);
//設置班級2的相關信息
get_score(scores,nums2);
printf("班級2的成績信息: ");
print_scores(scores,nums2);
set_number(&cls2,nums2);
set_scores(&cls2,scores);
printf("班級1的平均成績[%.2f] ",get_average(&cls1));
printf("班級2的平均成績[%.2f] ",get_average(&cls2));
printf("班級1中低於80分的人數[%d] ",get_numbers_under80(&cls1));
printf("班級2中低於80分的人數[%d] ",get_numbers_under80(&cls2));
return0;
}
voidset_number(CLASS*cls,intnumber)
{
cls->numbers=number;
}
voidset_scores(CLASS*cls,int*scores)
{
inti=0;
for(;i<cls->numbers;i++)
{
cls->scores[i]=scores[i];
}
}
floatget_average(constCLASS*cls)
{
inti=0;
floatsum=0.0;
for(;i<cls->numbers;i++)
{
sum+=cls->scores[i];
}
returnsum/cls->numbers;
}
//為了方便,使用隨機數據代表成績
voidget_score(int*scores,intn)
{
inti=0;
srand(time(NULL));
for(;i<n;i++)
{
scores[i]=rand()%100+1;
}
}
voidprint_scores(constint*scores,intn)
{
inti=0;
for(;i<n;i++)
{
if(0!=i&&0==i%10)
printf(" ");
printf("%d",scores[i]);
}
printf(" ");
}
intget_numbers_under80(constCLASS*cls)
{
inti=0,nums=0;
for(;i<cls->numbers;i++)
{
if(80>cls->scores[i])
nums++;
}
returnnums;
}
⑦ 用c語言設計一個程序統計一個班的學生成績
#include<stdio.h>
#include<stdlib.h>
//定義一個學生結構體數組
struct Student{
int id;
double score;
}Student[100];
//記錄實際導入學生個數
int len = 0;
//求最高分
void getmax() {
int maxid = 0;
double maxscore = -1;
for (int i = 0; i < len; i++) {
if (Student[i].score > maxscore) {
maxscore = Student[i].score;
maxid = Student[i].id;
}
}
printf("班級最高分為:%.2lf學號是:%d ", maxscore, maxid);
}
//求最低分
void getmin() {
int minid = 0;
double minscore = 101;
for (int i = 0; i < len; i++) {
if (Student[i].score < minscore) {
minscore = Student[i].score;
minid = Student[i].id;
}
}
printf("班級最低分為:%.2lf學號是:%d ", minscore, minid);
}
//求總分
double getsum() {
double sum = 0;
for (int i = 0; i < len; i++) {
sum += Student[i].score;
}
return sum;
}
//求平均分
double getave() {
double ave = 0;
return getsum() / len;
}
//導入學生信息
void input() {
int id = 0;
double score = 0;
while (1) {
printf("請輸入學生學號:");
scanf_s("%d", &id);
if (id == -1) { break; }
printf("請輸入學生成績:");
scanf_s("%lf", &score);
Student[len].id = id;
Student[len].score = score;
len++;
}
printf("信息導入完畢! ");
}
int main() {
input();
printf("全班總分為:%.2lf ", getsum());
printf("全班平均分為:%.2lf ", getave());
getmax();
getmin();
return 0;
}
註:此代碼運行於VS2017,如果在VC6.0中運行,可將scanf_s改成scanf
並且for(int i=0;i<len;i++){xxx}改成int i=0;for(i=0;i<len;i++){xxx}即可正常運行
程序運行測試圖如下:
⑧ 用c語言編寫程序:計算班級每位學生的平均成績。
第一題:
#include "stdio.h"
float *Grade(float *num,int i) //用來冒泡排序 num傳入數組指針,i傳入數組個數
{
int j,k;
float temp;
for (j=0;j<i;j++)
for (k=0;k<i-j;k++)
{
if (num[k]<num[k+1])
{
temp=num[k];
num[k]=num[k+1];
num[k+1]=temp;
}
}
return num;
}
void main()
{
float num[100];
int i=0,j=0,iavg=0; //i=數組個數,j=循環,iavg=高於平均成績人數
float avg=0,sum=0; //avg=平均成績,sum=總成績
printf("請輸入成績,按Ctrl+D結束:");
while (scanf("%f",&num[i])) //循環輸入成績
{
sum+=num[i];
i++;
}
avg=sum/i;
printf("平均分為%.1f\n",avg);
Grade(num,i);
printf("所有學生的成績為:");
for (j=0;j<i;j++)
{
printf("%.1f ",num[j]);
if (num[j]>avg)
iavg++;
}
printf("\n高於平均人數的有%d人\n",iavg);
}
第二題:
#include "stdio.h"
int digit(int i,int *dinum)
{
int j=0,k=0;
while (i=0) //計算位數
{
dinum[k]=i%10; //將數字存入數組
i=i/10;
j++;k++;
}
return j;
}
void main()
{
int inum,dinum[10],i,j; //inum=整數 dinum=存各個數字的數組 i,j=循環需要
printf("請輸入整數:");
scanf("%d",&inum);
j=digit(inum,dinum);
printf("該整數為 %d 位\n",j);
printf("數字分別為:");
for (i=j-1;i>=0;i--)
{
printf("%d ",dinum[i]);
}
}
第三題:
#include "stdio.h"
int fun(int *a)
{
int i=1,j=0;
for (i;i<1000;i++)
{
if ((i%7==0||i%11==0)&&!(i%7==0&&i%11==0))
{
a[j]=i;
j++;
}
}
return j;
}
void main()
{
int a[500],i,j;
j=fun(a);
for (i=0;i<j;i++)
{
printf("%d ",a[i]);
if (i%15==0)
printf("\n");
}
以上代碼均在VC6.0中編譯通過,現在1點了。後面的題以後再說
⑨ 求用c語言寫一個程序,求各個班級各門學科的平均分以及總分的平均分
這個是我以前寫的程序,只要在if語句里加一句輸出總人數和總分就ok了,其他的要求都和你一樣
#include<stdio.h>
/*程序從main函數開始執行*/
int main()
{
int counter;
int grade;
int total;
float average;
total = 0;
counter = 0;
printf( "Enter grade, -1 to end: " );
scanf( "%d", &grade );
while ( grade != -1 )
{
total = total + grade;
counter =counter + 1;
printf( "Enter grade, -1 to end: " );
scanf( "%d",&grade );
}
if ( counter != 0 )
{
average = ( float ) total / counter;
printf( "Class average is %.2f\n", average );
}
else
{
printf( "No grades were entered\n" );
}
return 0;
}
⑩ 使用c語言編寫程序,分別統計出每個學生的平均成績。
#include<stdio.h>
#define N 5//這里設置班級人數
void main()
{
int i,sum=0,high=0,score;
float average;
printf("input everyone's score.\n");
for(i=0;i<N;i++)
{
scanf("%d",&score);
sum+=score;
if(score>high) high=score;
}
average=(float)sum/N;
printf("average=%f\n",average);
printf("highest=%d\n",high);
}
這個代碼很容易懂。你拿去改下。。我就不給你調試了。這個是實現某班平均成績然後輸出平均成績最高成績的,如果採納我的。我可以給你編一個很通用的