c语言初学者的一个问题????
需要在有序数组a[10]中,插如数据为15的一个数插入后数组仍然保持有序最好加一下详细的注释,初学者谢谢是原来的数组就是递增排列的插入一个数15后还是按照递增排列的谢谢各...
需要在有序数组a[10]中,插如数据为15的一个数 插入后数组仍然保持有序
最好加一下详细的注释,初学者 谢谢
是原来的数组就是递增排列的 插入一个数15后还是按照递增排列的
谢谢各位啦
麻烦写一下程序吧 展开
最好加一下详细的注释,初学者 谢谢
是原来的数组就是递增排列的 插入一个数15后还是按照递增排列的
谢谢各位啦
麻烦写一下程序吧 展开
3个回答
展开全部
/** 有点长,先将就着用吧!呵呵!! 因为没有分数,所以也就没有写注释 **/
/*** 插入树组再排序程序要简单点,你可以试一下。 ***/
/****************** 程序在VC6.0 上测试百分百正确 **************************/
#include <stdio.h>
#define N 11
int main(void)
{
void move_back(int sign,int a[],int b[],int n);
int find(int n,int a[]);
int i,n,sign,b[N];
int a[N]={1,5,10,15,20,25,30,35,40,45};
printf("Enter the number you want to insert : ");
scanf("%d",&n);
sign=find(n,a);
move_back(sign,a,b,n);
printf("After insert , they are : \n");
for(i=0;i<N;i++)
printf("%d ",b[i]);
printf("\n");
return 0;
}
void move_back(int sign,int a[],int b[],int n)
{
int i;
for(i=0;i<sign;i++){
b[i]=a[i];
}
for(i=sign;i<N-1;i++){
b[i+1]=a[i];
}
b[sign]=n;
}
int find(int n,int a[])
{
int i,sign;
for(i=0;i<N-1;i++){
if((n>=a[i]) && (n<=a[i+1]))
sign=i+1;
}
return sign;
}
===========================================
===========================================
===========================================
本着助人为乐的精神,这次献上另外一个程序,先插入后排序。另外还加了注释。
如下所示:
/* insert first,sort second */
#include "stdio.h"
#define N 11
void main()
{
int insert_number,i,j,tmp,b[N];
int a[N]={1,5,10,15,20,25,30,35,40,45}; /* 初始化 */
printf("enter the number you want to insert: "); /* 输入你想要插入的数 */
scanf("%d",&insert_number);
b[0]=insert_number; /* 把刚才输入的数和原数组A的数全部赋给数组B */
for(i=0;i<N-1;i++){
b[i+1]=a[i];
}
for(i=0;i<N;i++) /* 开始排序 */
for(j=0;j<N;j++)
if(b[i]<b[j]){
tmp=b[i];
b[i]=b[j];
b[j]=tmp;
}
printf("Now , they are : \n"); /* 把排序好的数据输出 */
for(i=0;i<N;i++)
printf("%d ",b[i]);
printf("\n");
return 0;
}
/*** 插入树组再排序程序要简单点,你可以试一下。 ***/
/****************** 程序在VC6.0 上测试百分百正确 **************************/
#include <stdio.h>
#define N 11
int main(void)
{
void move_back(int sign,int a[],int b[],int n);
int find(int n,int a[]);
int i,n,sign,b[N];
int a[N]={1,5,10,15,20,25,30,35,40,45};
printf("Enter the number you want to insert : ");
scanf("%d",&n);
sign=find(n,a);
move_back(sign,a,b,n);
printf("After insert , they are : \n");
for(i=0;i<N;i++)
printf("%d ",b[i]);
printf("\n");
return 0;
}
void move_back(int sign,int a[],int b[],int n)
{
int i;
for(i=0;i<sign;i++){
b[i]=a[i];
}
for(i=sign;i<N-1;i++){
b[i+1]=a[i];
}
b[sign]=n;
}
int find(int n,int a[])
{
int i,sign;
for(i=0;i<N-1;i++){
if((n>=a[i]) && (n<=a[i+1]))
sign=i+1;
}
return sign;
}
===========================================
===========================================
===========================================
本着助人为乐的精神,这次献上另外一个程序,先插入后排序。另外还加了注释。
如下所示:
/* insert first,sort second */
#include "stdio.h"
#define N 11
void main()
{
int insert_number,i,j,tmp,b[N];
int a[N]={1,5,10,15,20,25,30,35,40,45}; /* 初始化 */
printf("enter the number you want to insert: "); /* 输入你想要插入的数 */
scanf("%d",&insert_number);
b[0]=insert_number; /* 把刚才输入的数和原数组A的数全部赋给数组B */
for(i=0;i<N-1;i++){
b[i+1]=a[i];
}
for(i=0;i<N;i++) /* 开始排序 */
for(j=0;j<N;j++)
if(b[i]<b[j]){
tmp=b[i];
b[i]=b[j];
b[j]=tmp;
}
printf("Now , they are : \n"); /* 把排序好的数据输出 */
for(i=0;i<N;i++)
printf("%d ",b[i]);
printf("\n");
return 0;
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询