C语言问题(高手请进)

要求:用指针和数组评委打分问题。十个评委,去掉一个最高分和一个最低分,求余下八个的平均分,要求使用指针和数组。
回答的好我加分,如果能在今天晚上九点之前回答出来我再加分。
这几个答案我都运行过了,不太满意,有没有更好的啊。我还加分

这个我已经编译过了,不知道你满不满意啊
#include "Stdio.h"
#define N 5
int main(void)
{
float grade[N],*p,max,min,sum=0,avg;//定义了一个记录分数的数组,一个指针,一个最大值,一个最小值,和存总分,平均分的变量
p=grade;
scanf("%f",p);
max=min=*p;
sum=sum+*p;
p++;
for(;p<grade+N;p++)
{ scanf("%f",p);
sum=sum+*p;
if(*p>max)max=*p;
if(*p<min)min=*p;
}
avg=(sum-max-min)/(N-2);
printf("the grade is:%f\n",avg);
getch();
}
温馨提示:内容为网友见解,仅供参考
第1个回答  2009-06-03
#include <stdio.h>

int main()
{
int count[10];
int allcount = 0;
int big,small;
int i = 0;

for (i = 0; i < 10; i++) {
printf("Please input the %dts: \n", i + 1);
if(scanf("%d", &count[i]) !=1 ) {
printf("Input error! \n");
return -1;
}
allcount += count[i];
}
big = small = count[0];
for (i = 0; i < 10; i++) {
if ( count[i] > big)
big = count[i];
if ( count[i] < small)
small = count[i];
}
printf("Average is : %d\n", (allcount - big - small)/8);
return 0;
}
第2个回答  2009-06-03
#include <stdio.h>
void main()
{
double *p1,*p2,sum=0.0,array[10]={9.1,9.0,9.7,9.1,9.4,9.9,9.8,8.9,9.3,9.1};
int i,j;
p1=array;
for(i=0;i<10;i++)
for(j=i;j<10;j++)
{
if(*p1<*(p1+1))
{
*p2=*p1;
*p1=*(p1+1);
*(p1+1)=*p2;
}
}
p1=array;
for(i=1;i<9;i++)
sum=sum+*(p1+i);
printf("average is: %f\n",sum/8.0);
}
第3个回答  2009-06-03
#include <stdio.h>
void main()
{ float a[10],*p,max,min,sum;
int i;
p=a;
for(i=0;i<10;i++)
scanf("%f",p++);//输入评委的打分
sum=a[0];
min=a[0];
sum=a[0];
for(p=a;p<a+9;p++)
{if(max<*(p+1))
max=*(p+1);
else if(min>*(p+1))
min=*(p+1);
sum+=*(p+1);
}
printf("%f",(sum-max-min)/8);
}
第4个回答  2009-06-03
float ave(float *s)
{
int i;
float mn,mx,sum;
mn=s[0];
mx=s[0];
sum=s[0];
for(i=1;i<10;i++)
{
sum=sum+s[i];
if(s[i]>mx)mx=s[i];
if(s[i]<mn)mn=s[i];
}
return (sum-mx-mn)/8;
}
第5个回答  2009-06-03
楼上的说的好!不过楼主应该没这么傻!

C语言高手请进来11
第一题:运行后,循环第一轮后输出8,第二轮后输出7,第三轮输出6,第四轮时达到要求退出循环,结束程序。选B 第二题:这个是找出小于等于50的整数中能被2、3、7整除的数,这个题直接从答案里找一个,所以选C 第三题:运行到这个时for(j=0;j < 3;j++){ if(j%2) continue;x++;} x++ ...

编程高手请进!(C语言)
printf("\\n NEXT?(Y\/N):");\/*选择是否重新游戏*\/ scanf("%c",&yes);} } 2.include <stdio.h> void main(){ int gj, mj, xj, t1, t2;for (gj=1; gj<=20; gj++){ for (mj=1; mj<34; mj++){ xj=100-gj-mj;t1=xj%3;t2=5*gj+3*mj+xj\/3;if (t1==0&&t2==100...

C语言高手请进啊,高分哦,详细的解释!!!
定义的数组为二维。所以 p[1] 是第二行的全部元素 即 France 另外它不是省略的 p[1][0],两者不同,前者是一行,后者是一个 另外,你可以从c语言的打印方式看出,前者 %s 是打印字符串 后者 %c 是打印字符(一个)希望对你有帮助啊!

高手请进:用C实现穿衣服顺序问题
include <stdio.h> int rudu(int a[][10], int i){\/\/查看入度 int j,t=0;for(j=0;j<10;j++){ t += a[j][i];} return t;} void tianjiaxulie(int xulie[],int i){\/\/把删除元素存入序列 int j,t=0;static int k=0;for(j=0;j<10;j++){ if(i==xulie[j])t=1...

C语言高手请进~~~
static struct s a[3]={1,&a[1],2,&a[2],3,&a[0]},这里定义了一个 结构数组a ,并且将其初始化了,其中a[0]={1,&a[1]},a[1]={2,&a[2]} a[2]={3,&a[0]},后面ptr = &a[1];就是让ptr指向a[1],所以ptr的值就是{2,&a[2]},也就是ptr->i1=2,答案d又...

c语言高手请进
include <stdio.h> int main(){ int i,j,k;for(i=0;i<9;i++){ for(j=0;j<9;j++){ for(k=0;k<9;k++){ if((i+j+k)<10 && i!=0)printf("%d%d%d ",i,j,k);} } } return 0;} 都类似的,只要改改if里的条件就可以了...q币啊.....

c语言问题,高手请进谢谢!!!
即i+i--->这两个i些时都是3;而不是一个2,一个3;4。再一个++i 此时i加1得到i,i=3+1=4;由上面的理解知道i此时已经是4,5、由上面四步得到一个i=4,i+i+i的式子,写入数据得到12 今天上课还在纠结这个问题,一看到你的问题突然想起来了!呵呵 ...

高分C语言问题~~·高手请进
int getValue(int A[]){ 初始 int S=0 1. (数组A)n个数字从小到大排序 (例如:1,2,9)2. 取上步中最小的两个数相加之和为一个M , S=S+M 3. 数组A中除去最小的两个数,然后将M加进去形成一个新数组A元素个数为 n=n-1 4. n>1时回到1.否则函数返回S+A[0] (或S+M,因为...

请c语言高手进来解一下题,看我这样做对不对,如果错请帮我改一下!
第一处:C是区分大小写的,Int ->int Scanf->scanf If->if Printf->printf Score还是score?两个不一样 第二处:输出的是字符,怎么能用int类型的score来接收? 所以score得定义为char类型 第三处:判断的条件是两项都符合,应该是&& “并且” 而不是|| “或者”第四处:A B C D E...

c语言高手请进来!
int i=-1;printf("%d,%o\\n",i,i)上面那大哥说的差不多了,只是%d是表示10进制的,%o是表示8进制的,关于在内存中怎么存贮转化你可以参考下清华大学出版社的 计算机基础,。大一的学生用的。8进制的177777转化成10进制并不是-1,这和在内存中的存储有关系,具体说太复杂了,你去自己看下吧。

相似回答
大家正在搜