c语言: 程序要求 5

程序要求:(1)在main函数中定义一个一维数组,初始化如下:floatscore[50]={78.5,87,68,89.5,92,83.5,86,67};(2)定义“排... 程序要求:
(1) 在main函数中定义一个一维数组,初始化如下:
float score[50]={78.5,87,68,89.5,92,83.5,86,67};
(2) 定义“排序”、“插入”、“查找”、“删除”、“输出”5个函数,主函数顺序调用这5个函数,完成相关测试
(3) 函数的描述
展开
 我来答
土堆上的石头
2012-11-16 · TA获得超过147个赞
知道小有建树答主
回答量:88
采纳率:0%
帮助的人:118万
展开全部

我刚刚帮你写了一个。

希望帮助到你!

程序试运行截图如下:


源代码:

//程序要求:

//(1) 在main函数中定义一个一维数组,初始化如下:

//float score[50]={78.5,87,68,89.5,92,83.5,86,67};

//(2) 定义“排序”、“插入”、“查找”、“删除”、“输出”5个函数,主函数顺序调用这5个函数,完成相关测试

//(3) 函数的描述

#include"stdio.h"

#include "stdlib.h"

float charu(float a[])

{

int n,i=0;

while(a[i]!=0)

i++;

printf("\n该数列长度为%d。\n",i);

    printf("请输入要插入元素的位置n(n<=%d)(在第%d位插入即在末尾增加一个元素):\n",i+1,i+1);

while(1)

{

scanf("%d",&n);

if(n>=1&&n<=i+1)

break;

printf("请输入0-%d以内的数字:\n",i+1);

}

for(i=i-1;i>=n-1;i--)

a[i+1]=a[i];

printf("请输入要添加的数:\n");

scanf("%f",&a[n-1]);

printf("新数列为:\n");

for(i=0;a[i]!=0;i++)

printf("%f\t",a[i]);

return a[50];

}

void chazhao1(float a[])/*顺序查找*/

{

int n=0;

float num;

printf("请输入要查找的数:\n");

scanf("%f",&num);

for(int i=0;a[i]!=0;i++)

if(a[i]==num)

{

printf("第%d位为%f。\n",i,num);

n=n+1;

}

if(n==0)

printf("没找到该数!\n");

}

float paixu1(float a[])

{

int n=0;

for(int i=0;a[i]!=0;i++)

n=n+1;

for(i=1;i<n;i++)

{

for(int j=0;j<n-i;j++)

{

if(a[j]>a[j+1])

{

float t;

t=a[j];a[j]=a[j+1];a[j+1]=t;

}

}

}

printf("排序后的数列为:\n");

for(i=0;a[i]!=0;i++)

printf("%f\t",a[i]);

return a[50];

}

float paixu2(float a[])

{

int n=0;

for(int i=0;a[i]!=0;i++)

n=n+1;

int min;

for(i=0;i<n-1;i++)

{

min=i;

for(int j=i+1;j<n;j++)

if(a[j]<a[min])

min=j;

if(min!=i)

{

float t;

t=a[i];a[i]=a[min];a[min]=t;

}

}

printf("排序后的数列为:\n");

for(i=0;a[i]!=0;i++)

printf("%f\t",a[i]);

return a[50];

}

void xianshi(float a[])

{

for(int i=0;a[i]!=0;i++)

printf("%f\t",a[i]);

}

void screen()

{

printf("\n请选择:\n");

printf("1.显示所有数\n");

printf("2.插入一个数\n");

printf("3.查找一个数\n");

printf("4.冒泡排序\n");

printf("5.选择排序\n");

printf("6.退出程序\n");

}

void main()

{

float score[50]={78.5,87,68,89.5,92,83.5,86,67};

int i;

printf("原数列为:\n");

for(i=0;score[i]!=0;i++)

printf("%f\t",score[i]);

printf("\n该数列长度为%d。\n",i);

int c;

while(1)

{

screen();

scanf("%d",&c);

switch (c)

{

case 1:xianshi(score);break;

      case 2:score[50]=charu(score);break;

    case 3:chazhao1(score);break;

    case 4:score[50]=paixu1(score);break;

    case 5:score[50]=paixu2(score);break;

case 6:exit(0);

    default :printf("输入的数字错误。\n请重新输入:\n");

}

continue;

}

}

secondhero
2012-11-17 · 超过14用户采纳过TA的回答
知道答主
回答量:73
采纳率:0%
帮助的人:28.9万
展开全部
好吧,上很强~顶一个
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
独一无wy
2012-11-16
知道答主
回答量:37
采纳率:0%
帮助的人:8.2万
展开全部
这好像不难吧,你哪里有问题?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式