编程输出总分
‘壹’ 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);
}
另外,站长团上有产品团购,便宜有保证