求一个N-S流程图,C语言程序如下:我们明天就要交作业了哦,谢谢! 待会给你加分

#include <stdio.h>
main()
{
int a[11],i,j,t,x;
//输入十个数字进行按大到小排序
printf("Input 10 numbers:\n");
for(i=0;i<10;i++) scanf("%d",&a[i]);
printf("\n");
for(j=1;j<=9;j++)
for(i=0;i<=9-j;i++)
if(a[i]<a[i+1])
{
t =a[i];
a[i]=a[i+1];
a[i+1]=t;
}
//输出十个已排好序的成绩
printf("The sorted numbers:\n");
for(i=0;i<10;i++) printf("%d ",a[i]);
printf("\n");
//输入一个成绩按顺序插入已排好序的十个成绩
printf("input 1 number:\n");
scanf("%d",&x);
if(x<a[9])
a[10]=x;
else
{
for(i=0;i<9;i++)
if(x>a[i])
{
t=i;
break;
}
for(j=10;j>i;j--)
a[j]=a[j-1];
a[i]=x;
}
//输出十一个已按从大到小排好序的十一个成绩
printf("output 11 numbers:\n");
for(i=0;i<11;i++)
printf("%d ",a[i]);
printf("\n");
/*(以下冒泡法排序)
for(i=0;i<=10-j;i++)
if(a[i]>a[i+1])
{
t=a[i];
a[i]=a[i+1];
a[i+1]=t;
}
printf("The sorted numbers:\n");
for(i=0;i<11;i++) printf("%d ",a[i]);
printf("\n");(按从小到大排序)*/
//(以下是置换法排序)
//输入任意键再执行下面排序的程序
printf("\n");
scanf("%d",&t);
//把已按从大到小排好序的十一个成绩再按从小到大的顺序排序
for(i=0;i<11/2;i++)
{
t=a[i];
a[i]=a[10-i];
a[10-i]=t;
}
//输出十一个已按从小到大排好序的十一个成绩
printf("output 11 numbers:\n");
for(i=0;i<11;i++)
printf("%d ",a[i]);
printf("\n");
}

第1个回答  2010-12-25
我给你写的是有10位选手,dev-c++运行通过
#include"stdio.h"
struct athelete
{
int a[10];//表示该选手与其他选手是否有进行过比赛,1表示已经进行过,0表示还没有
int on;//表示当天该选手是否已经有比赛 1表示已经有比赛 0表示没有比赛
};
main()
{
int i,j,flag;
flag=0;
struct athelete ath[10];
//将所有运动员的on和a[10]赋值为0
for(i=0;i<10;i++)
{
for(j=0;j<10;j++)
ath[i].a[j]=0;
ath[i].on=0;
}
do{
flag++;
printf("\n第%d天的比赛安排:",flag);
for(i=0;i<10;i++)
for(j=0;j<10;j++)
if((j!=i)&&(ath[i].on==0)&&(ath[j].on==0)&&(ath[i].a[j]==0))//判断2个选手是否当天是否有比赛,并且以前是否比赛过
{
printf("\nath[%d] VS ath[%d] ",i,j);
ath[i].on=1;
ath[j].on=1;
ath[i].a[j]=1;
ath[j].a[i]=1;
break;
}
//一天的比赛安排完成以后要将所有运动员的on属性归0
for(j=0;j<10;j++)
ath[j].on=0;
printf("\n----------------");
}while(flag!=9);
getchar();
}
相似回答
大家正在搜