编写一个程序,显示如下菜单:

菜单读入文件排序查找保存0.退出在一个文件中记录了许多学生的成绩,其格式如下,每个同学占一行,姓名和成绩之间使用空格隔开.... 菜单
读入文件
排序
查找
保存
0. 退出
在一个文件中记录了许多学生的成绩,其格式如下,每个同学占一行,姓名和成绩之间使用空格隔开.
展开
 我来答
圈圈7a4u
推荐于2017-12-15 · 超过58用户采纳过TA的回答
知道答主
回答量:119
采纳率:0%
帮助的人:150万
展开全部
参考以前写的这个吧
#include<stdio.h>
#include<stdlib.h>
int s[130];
int q,w,n;
int main()
{
void tongji();
void paixu();
void chashu();
void shanshu();
void qiupingjunzhi();
void tuichu();
int p;
printf("1.输入数字并统计个数\n2.排序\n3.插入数字\n4.删除数字\n5.求平均值\n");
printf("请输入选项:\n");
for(;;)
{
scanf("%d",&p);
switch(p)
{
case 1:tongji();break;
case 2:paixu();break;
case 3:chashu();break;
case 4:shanshu();break;
case 5:qiupingjunzhi();break;
case 6:tuichu();break;
default:printf("输入错误!请重新输入\n");
}
}
}
void tongji()
{
int m,i,j,c,f;
printf("请输入数字(以空格隔开,以-1作为结束的标志):\n");
for(n=0;n<100;n++)
{
scanf("%d",&s[n]);
if(s[n]==-1)
break;
}
printf("这组数的个数是:%d\n",n);
q=n;//q在排序中使用
w=q;//w在插数中使用
c=1;
printf("元素分别是:\n");
printf("%d ",s[0]);
for(j=1;j<n;j++)
{
f=1;
for(i=j-1;i>=0;i--)
{
if(s[i]==s[j])
{
f=0;break;
}
}
if(f)
{
printf("%d ",s[j]);
c++;
if(c%10==0)
printf("\n");
}
}
if(c%10!=0)
printf("\n");
printf("元素个数是:%d\n",c);
printf("数组中的所有数字:\n");
for(m=1;m<=n;m++)
{
printf("%d ",s[m-1]);
if(m%10==0)
printf("\n");
}
if(n%10!=0)
printf("\n");
}

void paixu()
{
int temp,i,j,k,t,tp;
for(i=0;i<q-1;i++)
{
k=i;
for(j=i+1;j<q;j++)
{
if(s[j]<s[k])
{
k=j;
}
}
tp=s[k];s[k]=s[i];s[i]=tp;
}
printf("从小到大排序的结果:\n");
for(i=0;i<n;i++)
{
printf("%d ",s[i]);
}
printf("\n");
}
void chashu()
{
int i,j,a[20],e,t;
printf("请输入要插入的数(以空格隔开,以-1作为结束的标志):\n");
for(i=0;i<30;i++)
{
scanf("%d",&a[i]);
if(a[i]==-1)
{
break;
}
}
e=i;
printf("要插入的数的个数是:%d\n",e);
for(i=0;i<e;i++)
{
for(j=1;j<w;j++)
{
if(s[0]>a[i])
{
t=w-1;
for(t;t>=0;t--)
{
s[t+1]=s[t];
}
s[0]=a[i];
break;
}
if(s[w-1]<=a[i])
{
s[w]=a[i];
break;
}
if((s[j-1]<=a[i]&&s[j]>a[i])||(s[j-1]<a[i]&&s[j]>a[i]))
{
t=w-1;
for(t;t>=j;t--)
{
s[t+1]=s[t];
}
s[j]=a[i];
break;
}
}
w++;
}
printf("插入数后的数组:\n");
for(i=0;i<w;i++)
{
printf("%d ",s[i]);
}
printf("\n");
printf("此时数字个数为:%d\n",w);
}
void shanshu()
{
int i,j,p,z;
printf("请输入要删除的数:\n");
scanf("%d",&p);
z=w;
for(;;)
{
for(i=0;i<w;i++)
{
if(s[i]==p)
{
for(j=i;j<w-1;j++)
{
s[j]=s[j+1];
}
w--;
break;
}

}
if(i==w)
break;
}
if(z==w)
{
printf("原数列中无此数!");
}
else
{
printf("删除数后的数列为:\n");
for(i=0;i<w;i++)
{
printf("%d ",s[i]);
}
printf("\n");
printf("此时数组中的数字个数是:%d",w);
}
printf("\n");
}
/*void shanshu()
{
int i=0,j=0;
while(i<n)
{
if(s[i]!=x){s[j]=s[i];i++;j++;}
else{i++;count--;}
}
}*/
/*void shanshu()
{int i,j,k;
for(i=0;i<w;i++)
{ k=i;
if(s[i]==x)
{ for(i=k;i<w-1;i++)
s[i]=s[i+1];
w--;
i=k-1;
}
}*/

void qiupingjunzhi()
{
int h,i;
h=0;
for(i=0;i<w;i++)
h=h+s[i];
printf("这组数的平均数为:%f\n",1.0*h/w);
}
void tuichu()
{
exit(0);
}
求采纳为满意回答。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式