当前位置: 代码迷 >> C语言 >> 数组题
  详细解决方案

数组题

热度:140   发布时间:2006-11-25 15:31:32.0
数组题

问题是:把一个整数按从小到大的顺序插入已排好序的数组中.
我得程序是:
#include<stdio.h>
void main()
{
int a[12];
int i,j,t;
printf("input 10 numbers:\n");
for(i=1;i<11;i++)
scanf("%d",&a[i]);
printf("\n");
for(j=1;j<10;j++)
for(i=1;i<=10-j;i++)
if(a[i]>a[i+1])
{
t=a[i];a[i]=a[i+1];a[i+1]=t;
}
printf("the sorted munbers:\n");
for(i=1;i<11;i++)
printf("%d\t",&a[i]);
for(i=1;i<11;i++)
scanf("%d",&a[i]);
printf("input a number again:\n");
scanf("%d",&a[11]);
printf("\n");
for(j=1;j<11;j++)
for(i=1;i<=11-j;i++)
if(a[i]>a[i+1])
{
t=a[i];a[i]=a[i+1];a[i+1]=t;
}
printf("the sorted munbers:\n");
for(i=1;i<12;i++)
printf("%d",&a[i]);
}

运行不出来.

搜索更多相关的解决方案: void  int  main  整数  

----------------解决方案--------------------------------------------------------
以下是引用小笑孩在2006-11-25 15:31:32的发言:

问题是:把一个整数按从小到大的顺序插入已排好序的数组中.
我得程序是:
#include<stdio.h>
void main()
{
int a[12];
int i,j,t;
printf("input 10 numbers:\n");
for(i=1;i<11;i++)
scanf("%d",&a[i]);
printf("\n");
for(j=1;j<10;j++)
for(i=1;i<=10-j;i++)
if(a[i]>a[i+1])
{
t=a[i];a[i]=a[i+1];a[i+1]=t;
}
printf("the sorted munbers:\n");
for(i=1;i<11;i++)
printf("%d\t",&a[i]); //这10个数已经排好序了.要做的是把第11个数插入.
for(i=1;i<11;i++)
scanf("%d",&a[i]);
printf("input a number again:\n");
scanf("%d",&a[11]);
printf("\n");
for(j=1;j<11;j++) //这里怎么还在排序
for(i=1;i<=11-j;i++)
if(a[i]>a[i+1])
{
t=a[i];a[i]=a[i+1];a[i+1]=t;
}
printf("the sorted munbers:\n");
for(i=1;i<12;i++)
printf("%d",&a[i]);
}

运行不出来.


----------------解决方案--------------------------------------------------------

以下是引用小笑孩在2006-11-25 15:31:32的发言:

问题是:把一个整数按从小到大的顺序插入已排好序的数组中.
我得程序是:
#include<stdio.h>
void main()
{
int a[12];
int i,j,t;
printf("input 10 numbers:\n");
for(i=1;i<11;i++)
scanf("%d",&a[i]);
printf("\n");
for(j=1;j<10;j++)
for(i=1;i<=10-j;i++)
if(a[i]>a[i+1])
{
t=a[i];a[i]=a[i+1];a[i+1]=t;
}
printf("the sorted munbers:\n");
for(i=1;i<11;i++)
printf("%d\t",&a[i]); // a[i]
for(i=1;i<11;i++) //??? 删除
scanf("%d",&a[i]);

printf("input a number again:\n");
scanf("%d",&a[11]);
printf("\n");
for(j=1;j<11;j++)
for(i=1;i<=11-j;i++)
if(a[i]>a[i+1])
{
t=a[i];a[i]=a[i+1];a[i+1]=t;
}
printf("the sorted munbers:\n");
for(i=1;i<12;i++)
printf("%d",&a[i]);
}

运行不出来.


----------------解决方案--------------------------------------------------------

以下是引用nuciewth在2006-11-25 17:37:46的发言:

for(i=1;i<11;i++)
printf("%d\t",&a[i]); //这10个数已经排好序了.要做的是把第11个数插入.
for(i=1;i<11;i++)
scanf("%d",&a[i]);
printf("input a number again:\n");
scanf("%d",&a[11]);
printf("\n");
for(j=1;j<11;j++) //这里怎么还在排序
for(i=1;i<=11-j;i++)
if(a[i]>a[i+1])
{
t=a[i];a[i]=a[i+1];a[i+1]=t;
}
printf("the sorted munbers:\n");
for(i=1;i<12;i++)
printf("%d",&a[i]);
要得是第十一个数插入后也要排好序,所以我在那个地方又排序了.


----------------解决方案--------------------------------------------------------
以下是引用小笑孩在2006-11-25 15:31:32的发言:

问题是:把一个整数按从小到大的顺序插入已排好序的数组中.
我得程序是:
#include<stdio.h>
void main()
{
int a[12];
int i,j,t;
printf("input 10 numbers:\n");
for(i=1;i<11;i++)
scanf("%d",&a[i]);
printf("\n");
for(j=1;j<10;j++)
for(i=1;i<=10-j;i++)
if(a[i]>a[i+1])
{
t=a[i];a[i]=a[i+1];a[i+1]=t;
}
printf("the sorted munbers:\n");
for(i=1;i<11;i++)
printf("%d\t",&a[i]); /*多了个取地址符&,删了*/
for(i=1;i<11;i++)
scanf("%d",&a[i]);
printf("input a number again:\n");
scanf("%d",&a[11]);
printf("\n");
for(j=1;j<11;j++)
for(i=1;i<=11-j;i++)
if(a[i]>a[i+1])
{
t=a[i];a[i]=a[i+1];a[i+1]=t;
}
printf("the sorted munbers:\n");
for(i=1;i<12;i++)
printf("%d",&a[i]); /*多了个取地址符&,删了*/

}

运行不出来.


----------------解决方案--------------------------------------------------------

我粗心错了不过,改后,运行时还是有问题.


----------------解决方案--------------------------------------------------------
#include<stdio.h>
void main()
{
int a[12];
int i,j,t;
printf("input 10 numbers:\n");
for(i=1;i<11;i++)
scanf("%d",&a[i]);
printf("\n");
for(j=1;j<11;j++)
for(i=1;i<=11-j;i++)
if(a[i]>a[i+1])
{
t=a[i];a[i]=a[i+1];a[i+1]=t;
}
printf("the sorted munbers:\n");
for(i=1;i<11;i++)
printf("%d\t",a[i]);
/*for(i=1;i<11;i++)
scanf("%d",&a[i]);*/ //为什么又重新输入一次?我认为这段不需要
printf("input a number again:\n");
scanf("%d",&a[11]);
printf("\n");
for(j=1;j<12;j++)
for(i=1;i<=12-j;i++)
if(a[i]>a[i+1])
{
t=a[i];a[i]=a[i+1];a[i+1]=t;
}
printf("the sorted munbers:\n");
for(i=1;i<12;i++)
printf("%d",a[i]);
}

----------------解决方案--------------------------------------------------------
  相关解决方案