c++问题,,求大神助???

#include<stdio.h>voidinarray(intscor[],intn);voidoutarray(intscor[],intn);voidsort1(i... #include<stdio.h>
void inarray( int scor[],int n);
void outarray (int scor[],int n);
void sort1(int scor[],int n);
void sort2(int scor[],int n);
void insert(int scor[],int*k,int max);
void reserve(int scor[],int n);
void main(){
int score[11],n;
for( ; ; )
{
printf("欢迎使用成绩管理系统\n");
printf("1:输入多个成绩\n");
printf("2:显示全部成绩\n");
printf("3:对成绩排序\n");
printf("4:新增一个成绩\n");
printf("5:逆序存放\n");
printf("0:退出\n");
printf("请选择<0-5>\n");
scanf("%d",&n);
getchar();
switch(n)
{
case 1:printf("输入n的值\n");scanf("%d",&n);inarray(score,n);break;
case 2:outarray (score,n);break;
case 3:sort2(score,n);outarray (score,n);break;
case 4:insert(score,&n,11);outarray (score,n);break;
case 5:reserve(score,n);outarray (score,n);break;
case 0:break;
}
}
}

//输入
void inarray( int scor[],int n){
int i;
for(i=0;i<n;i++)
scanf("%d",&scor[i]);
printf("\n");
}
//输出
void outarray (int scor[],int n)
{ int i;
for(i=0;i<n;i++)
printf("%d ",scor[i]);
printf("\n");
}
//排序
void sort1(int scor[],int n)
{ int i,j,t;
for(i=0;i<n-1;i++)
for(j=0;j<n-i-1;j++)
if(scor[j]<scor[j+1])
{
t=scor[j];scor[j]=scor[j+1];scor[j+1]=t;
}
}
//排序
void sort2(int scor[],int n)
{
int i,j,t;char style;
printf("按升序排序请按a,按降序排序请按d:");
getchar();
scanf("%c",&style);
if(style=='a')
{ for(i=0;i<n-1;i++)
for(j=0;j<n-i-1;j++)
if(scor[j]>scor[j+1])
{
t=scor[j];scor[j]=scor[j+1];scor[j+1]=t;
}
}
if(style=='d')
{ for(i=0;i<n-1;i++)
for(j=0;j<n-i-1;j++)
if(scor[j]<scor[j+1])
{
t=scor[j];scor[j]=scor[j+1];scor[j+1]=t;
}
}
}
//插入
void insert(int scor[],int*k,int max)
{
int n,i,x;
n=(*k);
if(n==max)
printf("已满");
if(n<11)
{ printf("请输入一个需要插入的数x");
scanf("%d",&x);
scor[n]=x;
n++;
}
*k=n;
sort2(scor,n);
}
//反序存放
void reserve(int scor[],int n)
{ int i,j,t;
for(i=0,j=n-1;i<j;i++,j--)
{
t=scor[i];
scor[i]=scor[j];
scor[j]=t;

}
}
}这个程序中我为什么输入1;
再输入5;
输入元素:4 8 5 9 7;
再输入2;
得到的输出元素只有:4 8 这2个元素。。这是为什么呢???求大神助。。。。??万分感谢!!!
展开
 我来答
iro52238
2012-12-24 · TA获得超过1.2万个赞
知道大有可为答主
回答量:3万
采纳率:0%
帮助的人:2889万
展开全部
额,LS冒泡排序可以处理100W真正的男人? N平方复杂伤不起呢?
这个问题可以直接序列背后的序列1 2排序复杂度O(nlogn),100W可以接受的,LZ可以轻松应对O(NlogN)数排序,然后执行它。 (当然,同样作为LS说的排序算法库)
但这个问题实际上是一个有序队列的基本问题,解决复杂度为O(M + N),思路是这样的:有两个序列S1 ,S2,以保持其队列头H1,H2,然后创建一个新的队列S3比较,S1 [H1] - S2 [H2],进入S3,然后向后递归。合并,合并排序。
善意的姿态,我可能会写一个代码,但水平是有限的诚意海涵...
#包括
使用命名空间std;
const int的最大值= 1000000;
诠释S1 [MAX];
诠释S2 [MAX];
>诠释S3 [MAX * 2 +1];
廉政的main()

整数N,M,N,H1,H2,H3;
CIN >> N;
为(int k = 0; <N,K + +)
{
CIN >> M >> N;
(INT I = 0;我<M ;我+ +)
CIN >> S1 [I];
(J = 0,J <N,J + +)
CIN >> S2 [J]; /> H1 = H2 = H3 = 0;
(H1 <M && H2 <N)
{
(S1 [H1] <S2 [H2])
S3 [H3 + +] = S1 [H1 + +];
其他
S3 [H3 + +] = S2 [H2 + +]
}
而(H1 <M )
S3 [H3 + +] = S1 [H1 + +];
(H2 <N)
S3 [H3 + +] = S2 [H2 + +] </法院<< S3 [(M + N)/ 2] << endl;
}
返回0;
}
追问
首先谢谢您了!就是看不太懂您回答的是什么。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
TableDI
2024-07-18 广告
VLOOKUP是Excel中用于垂直查找的函数,其基本用法包括四个参数:1. 查找值:即在数据表首列中需要搜索的值。2. 数据表:包含查找值的单元格区域或数组。3. 返回值所在列数:指定返回查询区域中第几列的值。4. 查找方式:选择精确匹配... 点击进入详情页
本回答由TableDI提供
单色调的张扬
2012-12-24 · 超过12用户采纳过TA的回答
知道答主
回答量:45
采纳率:0%
帮助的人:29.1万
展开全部
选项和分数都用一个n变量,你输入2,想输出你录入的分数时,把分数数组的个数改为2了,增加一个变量 nChoice,当你选择哪个选项时,去swithc这个变量。存放分数的那个n只有在录入的时候修改,其他的时候别去修改。另外,0选项时最好exit,要不程序退不出去。改动部分如下:
声明部分:
int score[11],n,nchoice;// nchoice加入
显示完选项时:
scanf("%d",&nchoice);// 将选项存入nchoice
getchar();
// 以nChoice作为判断条件
switch(nchoice)
请选为最佳答案。。。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
戎好人
2012-12-24
知道答主
回答量:68
采纳率:0%
帮助的人:33万
展开全部
呵呵
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式