用C语言求一个班的平均成绩,但是这个班人数未知,怎么写这个程序呀?大神们帮帮忙~谢啦~ 10

 我来答
匿名用户
2013-03-25
展开全部
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');
}
追问
#define N 4

这个的意思是已知学生人数为3了吧?我想要那种不知道总人数的,输入几个就是几个的那种,谢谢~
White_MouseYBZ
2013-03-25 · TA获得超过4万个赞
知道大有可为答主
回答量:2.1万
采纳率:82%
帮助的人:6355万
展开全部
#include "stdio.h"//
typedef struct Stu{
double score;
struct Stu *next;
}*LinkStu;
void main(void){
int i=0,x;
double sum=0.0;
LinkStu ptmp=NULL,head;
while(++i){
printf("Student%d.score=",i);
scanf("%d",&x);
if(x<0){
if(ptmp) ptmp->next=NULL;
printf("Recorded %d project(s).\n",i-1);
printf("Average is %g.\n",sum/(i-1));
return;
}
if(i==1){
if(!(ptmp=head=new Stu)){
printf("Application memory failure...\n");
return;
}
}
else{
if(!(ptmp=ptmp->next=new Stu)){
printf("Application memory failure...\n");
return;
}
}
sum+=ptmp->score=x;
}
}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
hxlkell
2013-03-25 · TA获得超过206个赞
知道小有建树答主
回答量:135
采纳率:0%
帮助的人:111万
展开全部
#include <stdio.h>
#include <string.h>
int main()
{
int a[100],x,y,sum;
float ar;
char str[400];
int ssscanf(char *,char *,int *,int);
printf("请输入成绩,100个以内/n");
gets(str);
x=ssscanf(str,"%d",&a[0],50);
printf("共录入 %d 个成绩,平均分是:\n",x);
for (y=0,sum=0;y<x;y++) {
sum=sum+a[y];
}
ar=sum/x;
printf("%f",ar);
}
int ssscanf(char *pmt_string,char *format,int *array_head,int max_length)
{
int i,*p;
char *k;
for (i=0,k=pmt_string,p=array_head;*k!=0 && i<max_length;i++,k++,p++) {
for (;*k<=32;k++) {
}
sscanf(k,format,p);
for (;*k>32;k++) {
}
}
return i;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
huangdongbeidu
2013-03-25
知道答主
回答量:10
采纳率:0%
帮助的人:8.7万
展开全部
可以通过多学生信息输入的时候来对学生的人数进行一个记数,在通过一个条件判断跳出循环输入的过程
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
_whales
2013-03-25 · TA获得超过2279个赞
知道大有可为答主
回答量:1814
采纳率:85%
帮助的人:485万
展开全部
输入呀,从文件读呀!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式