#include<iostream>
using namespace std;
int main()
{
int a[11]={1 6 13 17 28 40 56 78 89 100};
int num,i,j;
cout<<"Enter:";
cin>>num;
for(i=0;i<10;i++)
{if(num<a[i])
for(j=10;j>i;j--)
a[j]=a[j-1];}
a[i]=num;
for(i=0;i<11;i++)
cout<<a[i]<<" ";
cout<<endl;
return 0;
}
我已按题目编写程序如上,但运行发现若干错误!求高手指点,都有些什么问题?!谢谢啦!
#include<stdio.h>
void main(){
/*输出数组各元素*/
int i,key,loc;
int a[10]={1,3,6,9,10,15,16,22,30};
for(i=0;i<9;i++){
printf("%d",a<i>);
}
/*寻找插入位置*/
printf("\n\nPlease intput key:");
scanf("%d",&key);
loc=0;
for(i=0;i<9;i++){
if(a<i>>=key)break;
}
loc=i;
/*逆序向后移动每一个元素,然后插入新元素*/
for(i=8;i>=loc;i--){
a[i+1]=a<i>;//
}
a[loc]=key;
/*输出新数组各元素*/
printf("\nNew array is-----\n");
for(i=0;i<10;i++){//插入一个元素,组数长度增1
printf("%d",a<i>);
}
printf("\n");
}
输入12,输出结果如下:
总结:一组数组,直到找到大于或等于输入数的时候,找到插入数的下标,a[i+1]=a<i>意思是将a<i>的值给a[i+1],往后移一个(插入一个数,后面元素依次往后移动一个)
方法二、
#include<stdio.h>
void main(){
int data,temp,k;
static int a[9]={-10,2,4,8,10,15,25,50};
printf("\nEnter a data:");
scanf("%d",&data);
for(k=8;k>=1;k--){
if(a[k-1]>data)//逆序遍历数组元素,数组元素大于data,该元素就向后移动一位
{
a[k]=a[k-1];
}else{
a[k]=data;//数组元素小于data,把data放到该元素后面
break;
}
}
for(k=0;k<9;k++){
printf("%7d",a[k]);
}
}
两种其实差不多,但是第二种代码量小。
include用法:
#include命令预处理命令的一种,预处理命令可以将别的源代码内容插入到所指定的位置;可以标识出只有在特定条件下才会被编译的某一段程序代码;可以定义类似标识符功能的宏,在编译时,预处理器会用别的文本取代该宏。
插入头文件的内容
#include命令告诉预处理器将指定头文件的内容插入到预处理器命令的相应位置。有两种方式可以指定插入头文件:
1、#include<文件名>
2、#include"文件名"
如果需要包含标准库头文件或者实现版本所提供的头文件,应该使用第一种格式。如下例所示:
#include<math.h>//一些数学函数的原型,以及相关的类型和宏
如果需要包含针对程序所开发的源文件,则应该使用第二种格式。
恩恩 问题就是这些!多谢了!
对数组初始化,没有那么写的。
代码结构有点乱。