C语言实训报告!急!!!!!

1、歌手大奖赛中有若干个裁判为歌手打分,计算歌手最后得分的方法是:去掉一个最高分,去掉一个最低分,取剩余成绩的平均分。编写程序输入一个歌手的若干成绩,以-1做为输入结束标记,计算歌手的最后得分。
1,需要输入分数
2 求出最高分和最低分
,然后计算总分,需要减去最高分和最低分
3 统计输入成绩个数
4 最后求平均值
2、调试修改下列程序,使之具有如下功能:输入10个整数,按每行3个数输出这些整数,最后输出10个整数的平均值。
main( )
{ int i,n,a[10],av;
for(i=0;i<n;i++)
scanf("%d",a[i]);
for(i=0;i<n;i++)
{ printf("%d",a[i]);
if(i%3==0)
printf("\n");
}
for(i=0;i!=n;i++)
av+=a[i];
printf("av=%f\n",av);
}
3、编写程序,输入10名学生的学号和学年总平均成绩,并找出其中成绩最高和最低的学生。
4、编写程序,将8名候选人的投票数由多到少排列。(假设投票数为:34,56,45,57,69,48,79,61)
要求:1)用选择排序法实现
2)用冒泡排序法实现
5、编写程序,任意输入10个整数的数列,先将整数按照从大到小的顺序进行排序,然后输入一个整数插入到数列中,使数列保持从大到小的顺序。
6、输入4×4的数组,编写程序实现:
⑴ 求出对角线上各元素的和;
⑵ 求出对角线上行、列下标均为偶数的各元素的积;
⑶ 找出对角线上其值最大的元素和它在数组中的位置。
开头最好用
类似
#include<stdio.h>
void main()

1.#include<stdio.h>
void main()
{
float sum=0;//总分
float max=0;//最高分
float min=100;//最低分
int i=0;//统计输入个数
float score;
while(1)
{
printf("请输入第%d个评委的分数:",i+1);
scanf("%f",&score);
if(score==-1) break;//输入-1退出循环
else
{
if(score>max) max=score;
if(score<min) min=score;
sum+=score;
i++;
}
}
2.#include <stdio.h>
int main( )
{ int i,n=10,a[10],av=0;//英文下分号,av 初始化
for(i=0;i<n;i++) //英文下分号,n要有值
scanf("%d",&a[i]); //少了&
for(i=0;i<n;i++)
{ printf("%d",a[i]);
if((i+1)%3==0)
printf("\n");
}
for(i=0;i!=n;i++)
av+=a[i];
printf("av=%f\n",(float)av/n);
}
3.
#include <stdio.h>
#define N 5
int main(int argc, char *argv[])
{
int num[N]={0},i=0,k=0;
float score[N]={0.0};
for(i=0; i<N; i++)
scanf("%d%f",&num[i],&score[i]);
for(i=1; i<N; i++)
if(score[k]<score[i]) k=i;
for(i=0; i<N; i++)
printf("%8d",num[i]);
printf("\n");
for(i=0; i<N; i++)
printf("%8.2f",score[i]);
printf("\n");
printf("number=%d,score=%.2f\n",num[k],score[k]);
return 0;
}
4.
(1)
#include <stdio.h>
int main(int argc, char *argv[])
{
int a[8]= {34,56,45,57,69,48,79,61},i=0,j=0,k=0,t=0;
for(i=0; i<7; i++) {
k=i;
for(j=i+1; j<8; j++)
if(a[k]<a[j]) k=j;
t=a[i]; a[i]=a[k]; a[k]=t;
}
for(i=0; i<8; i++)
printf("%5d",a[i]);
printf("\n");
return 0;
}
(2)
#include <stdio.h>
int main(int argc, char *argv[])
{
int a[8]= {34,56,45,57,69,48,79,61},i=0,j=0,t=0;
for(i=0; i<7; i++)
for(j=i+1; j<8; j++)
if(a[i]<a[j]) {
t=a[i]; a[i]=a[j]; a[j]=t;
}
for(i=0; i<8; i++)
printf("%5d",a[i]);
printf("\n");
return 0;
}
5.#include <stdio.h>
void main()
{ int n[11],i,j,m,f;
for(i=0;i<10;i++)
scanf("%d",&n[i]);
for(i=0;i<10;i++)
for(j=i+1;j<10;j++)
{
f=n[i];
n[i]=n[i]>n[j]?n[i]:n[j];
if(n[j]>f)n[j]=f;
}
for(i=0;i<10;i++)
printf("%7d",n[i]);
printf("\nplease enter the 11th number:\n");
scanf("%d",&m);
for(i=0;i<10;i++)
if(m>n[i])
{
for(j=10;j>i;j--)
n[j]=n[j-1];
n[i]=m;
break;
}
else
if(i==9 && m<=n[9])
n[10]=m;
for(i=0;i<11;i++)
printf("%7d",n[i]);
getch();
}
6.#include <stdio.h>
int main(int argc, char *argv[])
{ int i,j,a[4][4],sum=0,p=1,max,maxi;
for (i=0;i<4;i++)
for (j=0;j<4;j++)
scanf("%d",&a[i][j]);
max=a[0][0];
for (i=0;i<4;i++)
{ sum+=a[i][i];
if (i%2==0)
p*=a[i][i];
if(a[i][i]>max)
{ max=a[i][i];
maxi=i;
}
}
printf("对角线上各元素的和:%d\n",sum);
printf("对角线上行、列下标均为偶数的各元素的积:%d\n",p);
printf("对角线上其值最大的元素:%d,它在数组中的位置:第%d行第%d列\n",max,maxi,maxi);
return 0;
}
温馨提示:答案为网友推荐,仅供参考
相似回答