📄 一维数组 升序 删除数据.cpp
字号:
/**/
#include<stdio.h> //导入包含I/O函数的头文件stdio.h
#include<stdlib.h> //导入包含随机数函数的头文件stdlib.h
#include<time.h> //导入 的头文件time.h
void main()
{while(1)
{
printf("\n 用随机数函数rand()给数组a[7]动态赋值(取值范围0~32767)后排序 \n");
int i,j,k; long a[7],x,temp;
srand((unsigned)time(NULL)); //用当前的时间设置rand()随机数函数的种子值
printf("\n 升序排序后的数列为:\n");
for(i=0;i<7;i++){a[i]=rand(); } //产生随机数(0~32767)给数组元素赋值
for(i=0;i<7;i++) //冒泡排序法 升序递增
{
for(j=6/*元素尾标*/;j>i;j--)
{
if(a[j-1]>a[j]){temp=a[j-1];a[j-1]=a[j];a[j]=temp; } //两两相邻元素比较,>成立则交换
}
}
/* 选择排序法 升序递增
for(i=0;i<n-1;i++)
{
min=a[i]; minsub=i; //设第1个元素值为当前最小值,记录其下标
for(j=i+1;j<n;j++) //在a[i+1]~a[i]中寻找最小值
{
if(a[j]<min){min=a[j]; minsub=j;} //当前元素小于最小值,则记录
}
temp=a[i];a[i]=a[minsub];a[minsub]=temp; //a[i]与最小值交换
}*/
for(i=0;i<7;i++){printf("%-9d",a[i]); if((i+1)%8==0){printf("\n");}} //输出1行6个
int num=7;
while(1)
{
printf("\n 输入欲删除的数值: "); scanf("%d",&x);
for(k=0;k<num;k++){if(x==a[k])break;}
if(k>=num){printf(" 数值中无%d此数!\n",x);}
else {for(j=k;j<num-1;j++){a[j]=a[j+1];}
num--;
printf("\n 删除%d后的数列为: \n",x);
for(i=0;i<num;i++)
{printf("%-9d",a[i]);
if((i+1)%8==0){printf("\n");} //1行6个
}printf("\n");
}
if(num==0){printf(" 数组已空,已无数值!");break;}
else{printf("\n 欲继续删除吗?是则回车,否则输入‘空格’回车 ");
getchar();
if(getchar()==' '){break;}
else {while(getchar()!='\n'){;}}
}
}
printf("\n\t欲重新开始吗?是则回车,否则输入‘空格’回车 ");
getchar();
if(getchar()==' '){break;}
else {while(getchar()!='\n'){;}}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -