//数组增添指定元素√
//数组删除指定元素
#include <stdio.h>
#include <stdlib.h>
//#define N 5
int main()
{
//数组降序排列:
int count = 5;//数组长度 变量~
double nums[ ] = {45711,42322,40907,40706,41000};
int temp;
int i;
int j;
//降序排列
//外循环:
for(i = 0;i < count - 1;i++)
{
//内循环:
for(j = 0;j < count - i - 1;j++)
{
if(nums[j] < nums[j + 1])
{
temp = nums[j];
nums[j] = nums[j + 1];
nums[j + 1] = temp;
}
}
}
printf("降序排列为:");
for(i = 0;i < count;i++)
{
printf("%.0f ",nums[i]);
}
printf("\n\n");
//数组中指定元素删除:
double num;
printf("请输入要删除的数据:");
scanf("%lf",&num);//输入要删除的数据
for(i = 0;i < count;i++)//查找数组中是否有【num】
{
if(num == nums[i])
{
printf("已找到此数值\n");
break;
}
}
if(i == count) printf("未找到此数值\n");
else
{
for(;i < count;i++)
{
nums[i] = nums[i+1];
}
count -= 1;
}
printf("现在数组为:");
for(i = 0;i < count;i++)
{
printf("%.0f ",nums[i]);
}
printf("\n当前数组元素个数为:%d",count);
//添加指定元素到数组
printf("\n请输入要添加的元素:");
scanf("%lf",&num);
nums[count] = num;
count++;
//printf("\n%.0lf\n\n",nums[count - 1]);
//冒泡排序:
for(i = 0;i < count - 1;i++)
{
for(j = 0;j < count - i - 1;j++)//内循环
{
if(nums[j] < nums[j +1])
{
temp = nums[j];
nums[j] = nums[j+1];
nums[j + 1] = temp;
}
}
}
//打印数组:
printf("现在数组为:");
for(i = 0;i < count; i++)
{
printf("%.2f ",nums[i]);
}
printf("\n当前数组元素个数为:%d",count);
return 0;
}
当第一个删除一个不存的值第二个插入不能排序,最后一个显示0。去掉冒泡排序正常。第一个正常删除往后正常,什么原因?谢了
//数组删除指定元素
#include <stdio.h>
#include <stdlib.h>
//#define N 5
int main()
{
//数组降序排列:
int count = 5;//数组长度 变量~
double nums[ ] = {45711,42322,40907,40706,41000};
int temp;
int i;
int j;
//降序排列
//外循环:
for(i = 0;i < count - 1;i++)
{
//内循环:
for(j = 0;j < count - i - 1;j++)
{
if(nums[j] < nums[j + 1])
{
temp = nums[j];
nums[j] = nums[j + 1];
nums[j + 1] = temp;
}
}
}
printf("降序排列为:");
for(i = 0;i < count;i++)
{
printf("%.0f ",nums[i]);
}
printf("\n\n");
//数组中指定元素删除:
double num;
printf("请输入要删除的数据:");
scanf("%lf",&num);//输入要删除的数据
for(i = 0;i < count;i++)//查找数组中是否有【num】
{
if(num == nums[i])
{
printf("已找到此数值\n");
break;
}
}
if(i == count) printf("未找到此数值\n");
else
{
for(;i < count;i++)
{
nums[i] = nums[i+1];
}
count -= 1;
}
printf("现在数组为:");
for(i = 0;i < count;i++)
{
printf("%.0f ",nums[i]);
}
printf("\n当前数组元素个数为:%d",count);
//添加指定元素到数组
printf("\n请输入要添加的元素:");
scanf("%lf",&num);
nums[count] = num;
count++;
//printf("\n%.0lf\n\n",nums[count - 1]);
//冒泡排序:
for(i = 0;i < count - 1;i++)
{
for(j = 0;j < count - i - 1;j++)//内循环
{
if(nums[j] < nums[j +1])
{
temp = nums[j];
nums[j] = nums[j+1];
nums[j + 1] = temp;
}
}
}
//打印数组:
printf("现在数组为:");
for(i = 0;i < count; i++)
{
printf("%.2f ",nums[i]);
}
printf("\n当前数组元素个数为:%d",count);
return 0;
}
当第一个删除一个不存的值第二个插入不能排序,最后一个显示0。去掉冒泡排序正常。第一个正常删除往后正常,什么原因?谢了
