问题是:把一个整数按从小到大的顺序插入已排好序的数组中.
我得程序是:
#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<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]);
}
运行不出来.
----------------解决方案--------------------------------------------------------
问题是:把一个整数按从小到大的顺序插入已排好序的数组中.
我得程序是:
#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]);
}
运行不出来.
----------------解决方案--------------------------------------------------------
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]);
要得是第十一个数插入后也要排好序,所以我在那个地方又排序了.
----------------解决方案--------------------------------------------------------
问题是:把一个整数按从小到大的顺序插入已排好序的数组中.
我得程序是:
#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]);
}
----------------解决方案--------------------------------------------------------