編程輸出總分
『壹』 c語言編寫程序,輸入成績,可以求總分,平均分,排序,根據學號輸出成績
#include "stdio.h"
#include "string.h"
#define N 5
#define M 3
struct stu
{ char name[10];
char xh[10];
int score[M];
int total;
double avg;
}s[N];
input( struct stu s[N] )
{ int i,j;
printf("請輸入學生姓名\n");
for(i=0;i<N;i++)
scanf("%s",&s[i].name);
printf("請輸入學生學號\n");
for(i=0;i<N;i++)
scanf("%s",&s[i].xh);
printf("請輸入M門課的成績\n");
for(i=0;i<N;i++)
for(j=0;j<M;j++)
scanf("%d",&s[i].score[j]);
}
jisuan(struct stu s[N] )
{ int i,j;
for(i=0;i<N;i++)
for(j=0;j<M;j++)
{
s[i].total+=s[i].score[j];
s[i].avg=s[i].total/3.0;
}
}
print(struct stu s[N] )
{ int i,j;
printf("列印N個學生的所有數據\n");
printf("姓名\t學號\t語文\t數學\t英語\t總分\t平均分\n");
for(i=0;i<N;i++)
{ printf("%s\t%s\t",s[i].name,s[i].xh );
for(j=0;j<M;j++)
printf("%d\t",s[i].score[j]);
printf("%d\t%f\n",s[i].total,s[i].avg);
}
}
printmax(struct stu s[N] )
{ int i,j,k,base,max=0 ;
base=s[0].total;
for(i=0;i<N;i++)
if(s[i].total>=base)
{ max=s[i].total;
k=i;
}
printf("最高分數的學生是\n");
printf("姓名\t學號\t語文\t數學\t英語\t總分\t平均分\n");
printf("%s\t%s\t",s[k].name,s[k].xh );
for(j=0;j<M;j++)
printf("%d\t",s[k].score[j]);
printf("%d\t%f\n",s[k].total,s[k].avg);
}
main()
{ input(s);
jisuan(s);
print(s);
printmax(s);
}
『貳』 編程:給出一個百分製成績,要求輸出成績等級A、B、C、D、E。90分以上為A,80~89分為B,7
摘要 修改過後的正確程序:
『叄』 c語言編程:輸入三個學生的成績,輸出總分及平均值
可以參考下面的代碼:
int x, y, z;
float sum, avg;
printf("請輸入3個學生的成績");
scanf("%d%d%d", &x, &y, &z); //要先接收才能運算,先運算結果當然不對
sum = x + y + z;
avg = sum / 3;
printf("3個學生的總成績及平均分為");
printf("sum=%.2f,avg=%.2f ", sum, avg);
return 0;
(3)編程輸出總分擴展閱讀:
C語言floor()函數:求不大於x的最大整數(向下取整)
C語言fabs()函數:求雙精度浮點數的絕對值
C語言abs()函數:求整數的絕對值
C語言div()函數:求兩個數的商和余數
C語言fmod()函數:求x/y的余數(針對浮點數)
double log(double x) 返回logex的值
double log10(double x) 返回log10x的值
double pow(double x,double y) 返回x^y的值
『肆』 以下的編程出了什麼問題啊,為什麼輸出的平均分是0.0,總分是任意數
暈,看你這個東西不是一般的累,很多東西都沒做好,你把所有的數據封裝成一個結構體不是簡單多了嗎。還有那些參數都不對應,看到頭都暈了,最終還是幫你給弄好了,好好改正一下編程習慣吧。。。
#include <stdio.h>
#include <stdlib.h>
#define STUD_N 30
#define COURSE_N 3
int ReadScore(int score[][COURSE_N],long num[]);
void AverforStud(int score[][COURSE_N],int sum[],float aver[],int n);
void Print(int score[][COURSE_N],long num[],float aver[],int sum[],int n);
void DataSort(int score[][COURSE_N],int sum[],long num[],int n);
int main()
{
int score[STUD_N][COURSE_N],sum[STUD_N],n=3;
long num[STUD_N];
float aver[STUD_N];
n=ReadScore(score,num);
AverforStud(score,sum,aver,n);
DataSort(score,sum,num,n,aver);//////////////********************增參數,換位置
Print(score,num,sum,aver,n);
return 0;
}
/*函數功能:讀取學生成績和學號*/
int ReadScore(int score[][COURSE_N],long num[])
{
int i,j,n;
printf("Input the total number of the students(n<40):");
scanf("%ld",&n);
printf("input student's ID and score as:MT EN PH:\n");
for(i=0;i<n;i++)
{
scanf("%ld",&num[i]);
for(j=0;j<COURSE_N;j++)
{
scanf("%d",&score[i][j]);
}
}
return i;
}
/*函數功能:計算每個學生的總分和平均分*/
void AverforStud(int score[][COURSE_N],int sum[],float aver[],int n)
{
int i,j;
for(i=0;i<n;i++)
{
sum[i]=0;
for(j=0;j<COURSE_N;j++)
{
sum[i]=sum[i]+score[i][j];
}
aver[i]=(float)sum[i]/COURSE_N;
}
}
/*按總成績由高到低排出名次表*/
void DataSort(int score[][COURSE_N],int sum[],long num[],int n,int aver[])/*******************改過的,增加參數**************/
{
int i,j,k,a,temp1,temp2;
long temp3;
for(i=0;i<n-1;i++)
{
k=i;
for(j=i+1;j<n;j++)
{
if(sum[j]>sum[k])/*******************改過的**************/
{
k=j;
}
}
if(k!=i)
{
temp1=sum[k];sum[k]=sum[i];sum[i]=temp1;
temp3=num[k];num[k]=num[i];num[i]=temp3;
temp1=aver[k];aver[k]=aver[i];aver[i]=temp1;////////////***********增加的
for(a=0;a<COURSE_N;a++)
{
temp2=score[k][a];
score[k][a]=score[i][a];
score[i][a]=temp2;
}
}
}
}
/*函數功能:列印每個學生學號,總分和平均分*/
void Print(int score[][COURSE_N],long num[],int sum[],float aver[],int n)/*******************改過的,換位置**************/
{
int i,j;
printf("Counting Result:\n");
printf("Student's ID\t MT\t EN\t PH\t SUM\t AVER\n");
for(i=0;i<n;i++)
{
printf("%12ld\t",num[i]);
for(j=0;j<COURSE_N;j++)
{
printf("%4d\t",score[i][j]);
}
printf("%4d\t%5.1f\n",sum[i],aver[i]);
}
printf("\n");
}
『伍』 如何用C語言編程出「給出一個百分製成績,要求輸出成績等級」
因為你的score是char類型,char單字元的話,只能讀一個字元。比如你輸入80,其實讀入的是8,所以讀入的數字一定小於10,自然就是E了
不信的話可以看下如下代碼的結果
代碼之路還很長,樓主加油~~
至於怎麼改,改成int輸入即可。
『陸』 C語言編程中怎樣使數字輸出格式為分數
假如這個數為a,讓這個數從1,2,3......相乘。直到找到一個數b,使a乘b的小數位後都為零。然後就可以輸出結果了,分子是a乘以b,分母是b。關鍵是判斷a與b的乘積的那一部分。
『柒』 C語言編程任意輸入10個學生的1門課的成績,編程計算並列印總分和平均分
#include <stdio.h>
int main(void)
{
int a[10], i, j;/*表示是10個學生,五門課程的成績的數組*/
int average(int a[10]), average1(int a[10]), find(int a[10]);
for(i = 0;i < 10;i ++)
scanf("%d", &a[i]);
average(a);
average1(a);
find(a);/*第i個學生的第1門功課成績最高*/
return 0;
}
int average(int a[10])
{
float sum = 0;
int i;
for(i = 0;i < 10;i ++)
{
sum += a[i];
}
printf("%d", sum);
sum = 0;
}
return 0;
}
int average1(int a[10])
{
float sum = 0;
int i, ;
for(i = 0;i < 10;i ++)
{
sum += a[i];
}
printf("%d", sum);
sum = 0;
}
return 0;
}
int find(int a[10])
{
int a1, i, t;
for(i = 0;i < 10;i ++)
if(a[i] > a[0])
{
t = a[i];
a[i] = a[0];
a[0] = t;
a1 = i;
;
}
printf("%d", a1, );
return 0;
}
『捌』 C語言編程(每次用鍵盤輸入一個學生的2門分數,計算並輸出每個學生的總分和平均分)
#include<stdio.h>
intmain()
{inta,b,s,yx=0,jg=0;
floatav;
while(1)
{scanf("%d%d",&a,&b);
s=a+b;
av=s/2.0;
if(a<0||b<0)break;
printf("總分:%d 平均分:%.1f
",s,av);
if(av>=85)yx++;
elseif(av>=60)jg++;
}
printf("優秀人數:%d 及格人數%d
",yx,jg);
return0;
}
『玖』 Java編程,定義一個學生類,輸入3個學生數據,輸出平均分和總分
public class Student { public static void main(String[] args) { StudentInfo zhangsan = new StudentInfo("張三", 1, 99); StudentInfo lisi = new StudentInfo("李四", 2, 203); StudentInfo wangwu = new StudentInfo("王五", 3, 357); StudentInfo xiaohong = new StudentInfo("小紅", 4, 642); StudentInfo xiaozhang = new StudentInfo("小張", 5, 346); } } class StudentInfo{ public String name; public int num; public int score; public StudentInfo(String name,int num,int score){ this.name = name; this.num = num; this.score = score; }}
『拾』 編程統計全班學生成績。要求每次鍵盤輸入一個學生的3門課程分數,計算並輸出每個學生的總分和平均分
我再TC上試過的,絕對正確!可以自己把班裡同學的人數改一改~~
#include<stdio.h>
#define NUM 5 //(班裡的人數)
typedef struct{
int score1;
int score2;
char name[10];
int final;
int ave;
}Student;
void input(Student stu[]);
void output(Student stu[]);
int main(){
Student stu[NUM];
int i;
input(stu);
output(stu);
}
void input(Student stu[]){
int i;
int better=0,good=0;
printf("Please enter students'name and scores:\n");
for(i=0;i<NUM;i++){
scanf("%s%d%d",&stu[i].name,&stu[i].score1,&stu[i].score2);
stu[i].final=stu[i].score1+stu[i].score2;
stu[i].ave=stu[i].final/2;
if(stu[i].ave>=85) better ++;
if(stu[i].ave>=60&&stu[i].ave<85) good++;
}
printf("the number of better and good is%5d %5d\n",better,good);
}
void output(Student stu[]){
int i;
printf("The final and average of every student is :\n");
printf("NAME FINAL AVE\n");
for(i=0;i<NUM;i++)
printf("%s%5d%5d\n",stu[i].name,stu[i].final,stu[i].ave);
}
另外,站長團上有產品團購,便宜有保證