标题:一个C问题,改一下这个程序
只看楼主
mp3aaa
Rank: 5Rank: 5
等 级:贵宾
威 望:17
帖 子:2013
专家分:8
注 册:2006-2-15
得分:0 
for(k=0;k<100;k++)
{printf("please input num\name:");
scanf("%ld,%s",sin[k].num,&sin[k].name);
printf("please input score:");
for(j=0;j<12;j++)
scanf("%f",&sin[k].score[j]);
vs(sin[k].score);
for (j=0;j<12;j++)
printf("%f",sin[k].score[j]);
for (j=1;j<10;j++)
sum+=sin[k].score[j] ;
sin[k].aver=sum/10.0;
}
亏了我看见了 不然我就出不来了哦

羊肉串 葡萄干 哈密瓜!!
2006-09-14 01:42
万里雪飘
Rank: 1
等 级:新手上路
帖 子:145
专家分:0
注 册:2006-5-18
得分:0 
LZQQ号贴出来,我们共同学习哈

千里冰封,万里雪飘!!哈哈

2006-09-14 10:31
cdmalcl
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:24
帖 子:4091
专家分:524
注 册:2005-9-23
得分:0 
以下是引用万里雪飘在2006-9-14 10:31:53的发言:
LZQQ号贴出来,我们共同学习哈

你是不是看人家是女孩才要人家的QQ的啊

2006-09-14 10:38
cdmalcl
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:24
帖 子:4091
专家分:524
注 册:2005-9-23
得分:0 

#include <stdio.h>
#include <conio.h>

#define MAX 3
#define S_MAX 3

struct singer
{
int num;
char name[8];
double score[S_MAX];
double aver;
}sin[MAX];

struct singer *sort(struct singer s[])
{
int j,k;
struct singer e;

for(j=0;j<MAX-1;j++)
{
for(k=j;k<MAX;k++)
if(s[j].aver<s[k].aver)
{
e=s[j];
s[j]=s[k];
s[k]=e;
}
}
return s;
}

double get_aver(double s[])
{
int j;
double sum;
double ma,mi;

ma=mi=s[0];
for(j=0;j<S_MAX;j++)
{
ma=ma>s[j]?ma:s[j];
mi=mi<s[j]?mi:s[j];
}
for(j=0;j<S_MAX;j++)
sum+=s[j];
sum-=ma+mi;
return (double)sum/(S_MAX-2.0);
}

main()
{
double sum=0,e;
int j,k;

for(k=0;k<MAX;k++)
{
printf("please input num:");
scanf("%d",&sin[k].num);
printf("Please input name:");
scanf("%s",sin[k].name);
printf("please input score:\n");
for(j=0;j<S_MAX;j++)
{
printf("score%2d:",j+1);
scanf("%lf",&e);
sin[k].score[j]=e;
}
sin[k].aver=get_aver(sin[k].score);
}

sort(sin);

for(k=0;k<MAX;k++)
{
printf("%lf,%d,%s\n",sin[k].aver,sin[k].num,sin[k].name);
}
printf("Input ESC out!");
while(getch()!=27);
}
先做个简单的
你没做什么美化和其他的便利调试

2006-09-14 12:34
zzc0816
Rank: 1
等 级:新手上路
帖 子:61
专家分:7
注 册:2006-9-14
得分:0 
这样不觉得有点多了吗?

2006-09-14 17:05
cdmalcl
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:24
帖 子:4091
专家分:524
注 册:2005-9-23
得分:0 
以下是引用zzc0816在2006-9-14 17:05:40的发言:
这样不觉得有点多了吗?
哪里?
2006-09-14 17:10
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
得分:0 

#include <stdio.h>
#include <conio.h>
#define N 100
typedef struct
{
long num;
char name[20];
float score[12];
float aver;
}singer;

void inputdata(singer a[])
{
int i,j;
for(i=0;i<N;i++)
{
printf("input number:");
scanf("%ld",&a[i].num);
printf("input name:");
scanf("%s",a[i].name);
printf("input 12 scores:");
for(j=0;j<12;j++)
{
scanf("%f",&a[i].score[j]);
}
}
}
void getaver(singer a[])
{
int i,j;
float max,min,sum;
for(i=0;i<N;i++)
{
max=a[i].score[0];
min=a[i].score[0];
sum=0;
for(j=0;j<12;j++)
{
if(a[i].score[j]>max)
{
max=a[i].score[j];
}
if(a[i].score[j]<min)
{
min=a[i].score[j];
}
sum+=a[i].score[j];
}
a[i].aver=(sum-min-max)/10;
}
}

int main()
{
int k;
singer a[N];
inputdata(a);
getaver(a);
for(k=0;k<N;k++)
printf("%f %ld %s\n",a[k].aver,a[k].num,a[k].name);
return(0);
}

[此贴子已经被作者于2006-9-14 20:39:51编辑过]


倚天照海花无数,流水高山心自知。
2006-09-14 20:39
mp3aaa
Rank: 5Rank: 5
等 级:贵宾
威 望:17
帖 子:2013
专家分:8
注 册:2006-2-15
得分:0 

我也写了个程序 怎么就不对呢!!?
我是第一次用结构体 有东西不熟悉 ,还请指出错误
#include"stdio.h"
#include"conio.h"
struct
{
int num;
char name[8];
float score[12];
float avar;
}sum[100];
float fun(struct sum[],int);
float fun(struct sum[],int n)
{
int x,y;
float i=0,j=0,c=0;
for(x=0;x<12;x++)
for(y=0;y<12;y++)
{
if((sum[n].score[y])>(sum[n].score[y+1]))
{c=sum[n].score[y];sum[n].score[y]=sum[n].score[y+1];sum[n].score[y+1]=c;}
}
for(x=0;x<12;x++)
i+=sum[n].score[x];
for(y=0;y<12;y++)
j=(i-(sum[n].score[0]+sum[n].score[11]))/10;
return j;
}
main()
{
int i=0,j=0,a,m=0;
float z;
while(1)
{
printf("\n编号:");
scanf("%d",&sum[i].num);
printf("\n姓名:");
gets(sum[i].name);
printf("\n请输入成绩:");
for(j=0;j<12;j++)
scanf("%f",&sum[i].score[j]);
sum[i].avar=fun(sum,i);
printf("\n编号:%d",sum[i].num);
printf("\姓名:%s",sum[i].name);
for(j=0;j<12;j++)
printf("\n平委平分:%f",sum[i].score[j]);
printf("\n平均分:%f",sum[i].avar);
i++;
printf("\n继续请按1,否则按2:");scanf("%d",&a);
if(a==2) break;
}
sum[i]='\0';
for(j=0;j<=i;j++){
for(m=0;m<=i;m++){
if(sum[m].avar<sum[m+1].avar)
{z=sum[m].avar;sum[m].avar=sum[m+1].avar;sum[m+1].avar=z;}}}
for(j=0;j<i;j++)
{
printf("\n从高到低平分:");
printf("\n\n编号:%d",sum[j].num);
printf("\n姓名:%s\n",sum[j].name);
for(a=0;a<12;a++)
printf("各平委平分:%f\t",sum[j].score[a];
printf("\n平均分:%f",sum[j].avar);
}
getch();
}






羊肉串 葡萄干 哈密瓜!!
2006-09-14 21:01



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-89904-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.279273 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved