c语言: 程序要求 5
(1) 在main函数中定义一个一维数组,初始化如下:
float score[50]={78.5,87,68,89.5,92,83.5,86,67};
(2) 定义“排序”、“插入”、“查找”、“删除”、“输出”5个函数,主函数顺序调用这5个函数,完成相关测试
(3) 函数的描述 展开
我刚刚帮你写了一个。
希望帮助到你!
程序试运行截图如下:
源代码:
//程序要求:
//(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;
}
}