69,382
社区成员
发帖
与我相关
我的任务
分享
#include<stdio.h>
main()
{
int a[10]={2,4,6,,8,10,12} /*定义一个递增的数组*/
int i,j=0,k,l,z;
printf("please input a integer:\n");
scanf("%d",&i);
while(a[j]!='\0') /*数组中的元素个数*/
j++;
for(k=0;k<j;k++) /*关键是这个循环,是循环出错了吗?*/
{
if(i>a[k])
{
for(l+j-1;l>k;l--)
a[l+1]=a[j];
}
}
a[l+1]=i; /*插入*/
for(z=0;z<=j;z++)
printf("%d",a[z]);
}
#include<stdio.h>
main()
{
int a[10]={2,4,6,,8,10,12} /*数组里的赋值注意两个,,定义一个递增的数组*/
int i,j=0,k,l,z;
printf("please input a integer:\n");
scanf("%d",&i);
while(a[j]!='\0') /*数组中的元素个数,改为a[j] != 0,因为没有初始化到的元素默认为0*/
j++;
for(k=0;k<j;k++) /*关键是这个循环,是循环出错了吗? 对*/
{
if(i>a[k]) /*元素递增,怎么能这样判断呢?,应该是找第一个比i大的元素,这就是要插入的位置,找到后就应该退出循环*/
{
for(l+j-1;l>k;l--)/*然后元素后移空出插入位置*/
a[l+1]=a[j];
}
}
a[l+1]=i; /*插入*/
for(z=0;z<=j;z++)
printf("%d",a[z]);
}
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
int a[10]={2,4,6,8,10,12};
int i,j,k;
printf("please input a integer:\n");
scanf("%d",&i);
for (k = 0; k < 6; k++)
if (i < a[k]) break;/*找到插入位置*/
for (j = 6; j >= k; j--)/*元素后移*/
a[j+1] = a[j];
a[k] = i; /*插入*/
for (k = 0; k < 6+1; k++)
printf("%d ",a[k]);
system("PAUSE");
return 0;
}
#include<stdio.h>
int main()
{
int a[10]={2,4,6,8,10,12}; /*定义一个递增的数组*/
int i,j=0,k,l,z;
printf("please input a integer:\n");
scanf("%d",&i);
while(a[j] != 0) /*数组中的元素个数, 这里有问题,如果含有0就有问题了*/
j++;
for(k=0;k<j;k++) /*关键是这个循环,是循环出错了吗?*/
{
if(i < a[k])
{
for(l=j-1;l >= k; l--)
a[l+1] = a[l];
break;
}
}
a[k] = i; /*插入*/
for(z=0;z<=j;z++)
printf("%d ",a[z]);
return 0;
}