将一个任意整数插人到已排序的整型数组中,插人后数组中的数仍然保持有序。

将一个任意整数插人到已排序的整型数组中,插人后数组中的数仍然保持有序。(VS中)

要求:

(1)整型数组由直接赋值的方式初始化,要插入的整数由scanf()函数输入;

(2)算法实现过程采用指针进行处理;

(3)输出原始数组数据以及插入整数后的数组数据,并加以说明。

源程序

#include<stdio.h>
int main()
{    
int a[100] = {1,2,3,4,5,6,8}; 
   int(*p)[100] = &a; //int(*p)[100]是定义的数组指针哦,个人感觉这样比较方便,感兴趣的可以去了解一下数组指针和指针数组的相关知识
   int i, j, b,f;//b为插入原始数组的整数    printf("原始数组从小到大的顺序从左到右排列");  
 printf("原始数组为:\n"); 
   for (i = 0; i < 7; i++)  
 {     
   printf("%d\t", (*p)[i]); 
   if ((i + 1) % 4 == 0)    
    {    
        printf("\n");  
     }  
 }  
 printf("\n请输入需要插入数组的整数\n");    scanf_s("%d", &b);  
 int* pa = &b; 
   if (*pa > 8)  
 {     
   a[7] = *pa;  
 }  
 if (*pa <= 8)  
 {    
    i = 0, j = 0;     
   while (a[i] < *pa)      
    {      
     i++;    
     j++;  
     }  
    for (i = j; i < 8; i++)  
     {      
     (*p)[i + 1] = (*p)[i]; //将插入数的位置及其后面位置上的数一同后移    
     }      
 a[j] = *pa;  
 }     
 printf("插入整数后的数组是:\n");      
 for (i = 0; i < 8; i++)     
 {          
 printf("%d\t", (*p)[i]);  //"\t"是制表格的符号,可以让同行相邻两个数据间有间隔,即分开两个数据
   if ((i + 1) % 4 == 0) //此处是为了美观,每行满4个数据就换行,若不想换行,可删除
   {        
        printf("\n");   //“\n”是换行   
   }     
 }      
 return 0;
}

#include<stdio.h>
int main()
{    
int a[100] = {1,2,3,4,5,6,8}; 
   int(*p)[100] = &a; //int(*p)[100]是定义的数组指针哦,个人感觉这样比较方便,感兴趣的可以去了解一下数组指针和指针数组的相关知识
   int i, j, b,f;//b为插入原始数组的整数    printf("原始数组从小到大的顺序从左到右排列");  
 printf("原始数组为:\n"); 
   for (i = 0; i < 7; i++)  
 {     
   printf("%d\t", (*p)[i]); 
   if ((i + 1) % 4 == 0)    
    {    
        printf("\n");  
     }  
 }  
 printf("\n请输入需要插入数组的整数\n");    scanf_s("%d", &b);  
 int* pa = &b; 
   if (*pa > 8)  
 {     
   a[7] = *pa;  
 }  
 if (*pa <= 8)  
 {    
    i = 0, j = 0;     
   while (a[i] < *pa)      
    {      
     i++;    
     j++;  
     }  
    for (i = j; i < 8; i++)  
     {      
     (*p)[i + 1] = (*p)[i]; //将插入数的位置及其后面位置上的数一同后移    
     }      
 a[j] = *pa;  
 }     
 printf("插入整数后的数组是:\n");      
 for (i = 0; i < 8; i++)     
 {          
 printf("%d\t", (*p)[i]);  //"\t"是制表格的符号,可以让同行相邻两个数据间有间隔,即分开两个数据
   if ((i + 1) % 4 == 0) //此处是为了美观,每行满4个数据就换行,若不想换行,可删除
   {        
        printf("\n");   //“\n”是换行   
   }     
 }      
 return 0;

这是VS里适用的程序,其他软件可在这基础上面修改一下

实验结果:

评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

饭碗的彼岸one

感谢鼓励,谢谢

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值