A. c語言編程:歌唱比賽評委評分系統
#include <stdio.h>
#include<string.h>
void main()
{
int i,j,m,n;
float num,xgrade[100],max,min,pgrade[100],pdis[100];
char str[10],xname[100][10],pname[100][10];
printf("請輸入評委人數:");
scanf("%d",&m);
printf("\n請分別輸入評委姓名:\n");
for(i=0;i<m;i++)
{
scanf("%s",&pname[i]);//評委姓名
pgrade[i]=0;//評委給的分
pdis[i]=0;//評委給分和最後結果的差距
}
printf("\n請輸入選手人數:");
scanf("%d",&n);
printf("\n請分別輸入選手姓名:\n");
for(i=0;i<n;i++)
{
scanf("%s",&xname[i]);//選手姓名
xgrade[i]=0;//選手成績
}
for(i=0;i<n;i++)
{
max=0;min=10;//評委給選手的最大最小成績
printf("\n請給選手%s打分!",xname[i]);
for(j=0;j<m;j++)
{
printf("\n%s老師給的分數為:",pname[j]);
scanf("%f",&pgrade[j]);
xgrade[i]+=pgrade[j];//加到該選手的總分數中
if(max<pgrade[j])
max=pgrade[j];
if(min>pgrade[j])
min=pgrade[j];
}
xgrade[i]=(xgrade[i]-max-min)/(m-2);//最後成績為總成績-最高分-最低分,然後平均
for(j=0;j<m;j++)//算出每個評委本次評分和最終成績的差,加到pdis中保存起來
{
pdis[j]+=pgrade[j]>xgrade[i]?(pgrade[j]-xgrade[i]):(xgrade[i]-pgrade[j]);
}
}
for(i=0;i<n-1;i++)
for(j=0;j<n-1-i;j++)
if(xgrade[j]<xgrade[j+1])
{
strcpy(str,xname[j]);
strcpy(xname[j],xname[j+1]);
strcpy(xname[j+1],str);
num=xgrade[j];
xgrade[j]=xgrade[j+1];
xgrade[j+1]=num;
}
printf("\n選手按名次排名為:\n");
printf("選手名\t得分\n");
for(i=0;i<n;i++)
printf("%s\t%f\n",xname[i],xgrade[i]);
for(i=0;i<m-1;i++)
for(j=0;j<m-1-i;j++)
if(pdis[j]>pdis[j+1])
{
strcpy(str,pname[j]);
strcpy(pname[j],pname[j+1]);
strcpy(pname[j+1],str);
num=pdis[j];
pdis[j]=pdis[j+1];
pdis[j+1]=num;
}
printf("\n評委按名次排名為:\n");
printf("評委名\t差分\n");
for(i=0;i<m;i++)
printf("%s\t%f\n",pname[i],pdis[i]);
}
vae.la
B. c語言編程:本課題模擬一個簡單的比賽評分系統,選手從1號開始連續編號,選手得分分為專業素質得分和綜
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#defineMAXNAMELENGTH13
typedefstruct{
intid;
charname[MAXNAMELENGTH];
doublescores[9];
doublescore1,score2;
doublescore;
}PLAYER;
voidPlayer(PLAYER*dst,constPLAYERsrc){
memcpy(dst->name,src.name,MAXNAMELENGTH*sizeof(char));
memcpy(dst->scores,src.scores,9*sizeof(double));
dst->id=src.id;
dst->score1=src.score1;
dst->score2=src.score2;
dst->score=src.score;
}
voidbubbleSort_Players(PLAYER*src,intlen){//(descending).Timecomplex:O(n^2)
inti,j;
PLAYERtemp;
for(i=0;i<len;i++){
for(intj=0;j<len-1;j++){
if(src[j].score<src[j+1].score){
Player(&temp,src[j]);
Player(src+j,src[j+1]);
Player(src+j+1,temp);
}
}
}
}
doublegetScore(double*src,intn){
doubleret=0,mins=100,maxs=0;
for(inti=0;i<n;i++){
if(src[i]>maxs)
maxs=src[i];
if(src[i]<mins)
mins=src[i];
ret+=src[i];
}
return(ret-mins-maxs)/(n-2);
}
intmain(){
freopen("in.txt","r",stdin);
intn,i,j;
PLAYER*pl;
printf("請輸入選手數量:");
scanf("%d",&n);
FILE*fp=fopen("PlayerScore.txt","w");
pl=(PLAYER*)malloc(sizeof(PLAYER)*n);
fprintf(fp,"|id|name|judge1|judge2|judge3|judge4|judge5|judge6|judge7|judge8|judge9|ProScore|QualityScore|TotalScore| ");
for(i=0;i<n;i++){
printf("請輸入第%d名選手的姓名:",i+1);
scanf("%s",pl[i].name);
printf("請輸入9名裁判對%s的打分(以空格分隔): ",pl[i].name);
pl[i].id=i+1;
for(j=0;j<9;j++)
scanf("%lf",pl[i].scores+j);
pl[i].score1=getScore(pl[i].scores,9);
printf("請輸入選手的綜合素質得分:");
scanf("%lf",&pl[i].score2);
pl[i].score=0.9*pl[i].score1+0.1*pl[i].score2;
}
bubbleSort_Players(pl,n);
for(i=0;i<n;i++){
fprintf(fp,"|%06d|%12.12s|",pl[i].id,pl[i].name);
for(j=0;j<9;j++)
fprintf(fp,"%6.2lf|",pl[i].scores[j]);
fprintf(fp,"%6.2lf|%6.2lf|%6.2lf| ",pl[i].score1,pl[i].score2,pl[i].score);
}
return0;
}
東西寫好了,左右的輸出都存在本程序目錄下的PlayerScore.txt里,望採納
C. c語言的流程圖怎麼畫
如果會編程序而不會畫流程圖,建議先把自己的程序研究一遍。
若是畫主程序流程圖,那就需看懂主函數的程序,按照main()函數中的具體書寫過程來畫,例如:
程序開始---定義變數---初始化變數---使用選擇或者循環或者順序結構---調用某一個子函數(可以沒有)---程序結束
以上是最簡單的程序流程圖畫法。
若你是畫某一演算法或是某一模塊的流程圖,就要把相應的演算法或是模塊看懂。分析演算法或是模塊的具體走法,根據此走法就可以畫出對應的流程圖。
如果你是初學者,想根據流程圖的畫法而去嘗試編程,建議就一定要研究清楚每一個使用到的演算法,讀懂題目再開始編程。
下面是使VISO畫流程圖的幾個要點:
1、選擇下載一個合適版本的VISO
2、程序開始結束用膠囊
3、分頁用圓圈
4、輸入用平行四邊形
5、語句用方塊
6、判斷用菱形
7、列印用波浪
D. 如何用C語言編程出「給出一個百分製成績,要求輸出成績等級」
解:演算法:
S1輸入a;
S2如果a≥90,則輸出A,結束演算法,否則執行S3;
S3如果a≥80,則輸出B,結束演算法,否則執行S4;
S4如果a≥70,則輸出C,結束演算法,否則執行S5;
S5如果a≥60,則輸出D,結束演算法,否則輸出E。
流程圖如圖所示:
E. C語言評分程序
#include <stdio.h>#define SINGERS 6#define JUDGES 5typedef struct data{ int order; char name[16]; double score[JUDGES];} DATA; int main( void ){ DATA student[SINGERS]; int i, j; for ( i = 0; i < SINGERS; ++i ) { printf("Enter the name of singer %d: ",i+1); fflush(stdin); gets(student[i].name); printf("Enter %s\'s starting order: ",student[i].name); scanf("%d",&student[i].order); for ( j = 0; j < JUDGES; ++j ) { printf("Enter score %d: ",j+1); scanf("%lf",&student[i].score[j]); } putchar('\n'); } printf("\n\nName Order "); for ( i = 0; i < JUDGES; ++i ) printf("Score%d ",i+1); putchar('\n'); for ( i = 0; i < SINGERS; ++i ) { printf("\n%-15s%-6d",student[i].name,student[i].order); for ( j = 0; j < JUDGES; ++j ) { printf("%-7g",student[i].score[j]); } } puts("\n\nThank you!"); getch(); return 0;}
F. C語言 「評委打分」畫流程圖或寫程序
可以分為以下三步:1.用一個數組記錄十個評委的分數,如 int score[10];
2.對數組進行排序,從大到小、從小到大都可以,可以用最簡單的冒泡演算法
3.去數組下標為1~8的元素,求和再除以8就得到了平均分
G. C語言:歌唱比賽評分
#include<stdio.h>
intmain()
{
intN,a,max,min,sum,i;
scanf("%d",&N);
scanf("%d",&a);
max=min=sum=a;
for(i=1;i<N;i++)
{
scanf("%d",&a);
if(a>max)max=a;
if(a<min)min=a;
sum+=a;
}
sum-=max+min;
printf("%.2f ",(float)sum/(N-2));
return0;
}