解题思路:num为要插入的值,当nums[i] && num < nums[i+1]时,num要放在中间的位置,从nums[i+1]个元素到最后一个元素都向后移一位,当num大于数组最后一个元素,则num要放在最后,当num小于数组第一个元素,则numnum要放在第一位,数组中所有元素都向后移一位
注意事项:
这是升序的代码,降序同理
参考代码:
//已有一个已排好的9个元素的数组,今输入一个数要求按原来排序的规律将它插入数组中。
int result,num,i,count = 9 - 1,j;
int nums[100];
int a = 9;
for(i = 0;i < a;i++)//循环录入数组元素
{
result = scanf("%d",&nums[i]);
while(result != 1)//当用户的输入不为数字类型
{
scanf("%*s");//清空缓冲区
result = scanf("%d",&nums[i]);//重新赋值
}
}
scanf("%d",&num);//录入num
for(i = 0;i < a;i++)
{
if(num == nums[i] || num > nums[i] && num < nums[i+1] )
{//如果用户输入的数字等于数组里的某个元素或者num>nums[i]并且小于nums[i+1]
while(count > i)//当num>i是停止后移
{
nums[count+1] = nums[count];
count--;//数组中原来的所有元素都往后移一位
}
nums[i+1] = num;
break;
}
if(num > nums[a-1] )//用户输入的值最大,放到数组最后面
{
nums[a] = num;
break;
}
if(num < nums[0])//用户输入的值最小,放在第一位
{
while(count >= 0)//数组中原来的所有元素都往后移一位
{
nums[count+1] = nums[count];
count--;
}
nums[0] = num;//用户输入的数字放在第一位
break;
}
}
a++;
for(i = 0;i < a;i++)
{
printf("%d\n",nums[i]);
}
2,指针
int result,num,i,count = 9 - 1,j;
int nums[100];
int a = 9;
int *p = nums;
for(i = 0;i < a;i++)//循环录入数组元素
{
result = scanf("%d",p+i);
while(result != 1)
{
scanf("%*s");
result = scanf("%d",p+i);
}
}
scanf("%d",&num);//录入num
for(i = 0;i < a;i++)
{
if(num == *(p+i) || num > *(p+i) && num < *(p+i+1) )
{//如果用户输入的数字等于数组里的某个元素或者num>nums[i]并且小于nums[i+1]
while(count > i)//当num>i是停止后移
{
//nums[count+1] = nums[count];
*(p+count+1) = *(p+count);
count--;//数组中原来的所有元素都往后移一位
}
//nums[i+1] = num;
*(p+i+1) = num;
break;
}
if(num > /*nums[a-1]*/ *(p+a-1) )//用户输入的值最大,放到数组最后面
{
//nums[a] = num;
*(p+a) = num;
break;
}
if(num < /*nums[0]*/ *p)//用户输入的值最小,放在第一位
{
while(count >= 0)//数组中原来的所有元素都往后移一位
{
//nums[count+1] = nums[count];
*(p+count+1) = *(p+count);
count--;
}
//nums[0] = num;//用户输入的数字放在第一位
*p = num;
break;
}
}
a++;
for(i = 0;i < a;i++)
{
printf("%d\n",*(p+i));
}
0.0分
0 人评分
C语言程序设计教程(第三版)课后习题10.1 (C语言代码)浏览:664 |
母牛的故事 (C语言代码)浏览:738 |
C语言程序设计教程(第三版)课后习题5.7 (C语言代码)浏览:704 |
C语言程序设计教程(第三版)课后习题6.3 (C语言代码)浏览:470 |
C语言程序设计教程(第三版)课后习题1.5 (C语言代码)浏览:578 |
妹子杀手的故事 (C语言代码)浏览:1218 |
C语言程序设计教程(第三版)课后习题7.1 (C语言代码)浏览:512 |
【偶数求和】 (C语言代码)浏览:640 |
C语言程序设计教程(第三版)课后习题1.5 (C语言代码)浏览:459 |
Wu-求圆的面积 (C++代码)浏览:1887 |