就缺两个 一个是 m=i;一个是a[p]=k;
最好是 先输入数据!
----------------解决方案--------------------------------------------------------
不仅仅是逗号问题吧,还有很多的错误哦,我按照你的意思把你的程序大致该了一下,运行没有问题!!!
main()
{int t,i,j,k,m,p;
int a[9]={10,4,-7,32,14,25,-18,20};
clrscr();
for(j=0;j<7;j++)
for(i=0;i<7-j;i++)
if(a[i]<a[i+1])
{t=a[i];a[i]=a[i+1];a[i+1]=t;}
printf("input a number:\n");
scanf("%d",&k);
for(i=0;i<8;i++)
if(a[i]<=k)
{m=i;
break;}
for(i=8;i>m;i--)
a[i]=a[i-1];
a[m]=k;
for(i=0;i<9;i++)
printf("%d",a[i]);
}
----------------解决方案--------------------------------------------------------
[回复楼主]
//此处缺头文件
main()
{int t,i,j,k,m,p;
int a[10]={10,4,-7,32,14,25,-18,20};
for(j=0;j<7;i++)//i++应改为j++
for(i=0;i<7-j;i++)
if(a[i]<a[i+1])//这是从大到小排序!
{t=a[i];a[i]=a[i+1];a[i+1]=t;}
printf("input a number:\n");
scanf("%d",&k);
for(i=0;i<8;i++)
if(a[i]>=k)m=i//尾部缺分号。
//以上逻辑错,得到的m不是正确的插入点
for(p=m;p<9;p++)
{t=k;k=a[p];a[p]=k/*缺分号*/}
for(i=0;i<9;i++)
ptintf("%d",a[i]);//应为printf
}
涂色部分问题更大。
----------------解决方案--------------------------------------------------------
语法错误应该自己多看看,自己会改的吧.像少分号这样的事,自己编译的时候可以发现的.
自己上机实现,试着自己改正语法错误,这样才有进步的.
#include"stdio.h"
#define N 10
void sort(int a[],int n)
{
int i,j,temp;
for(i=0;i<n;i++)
for(j=0;j<n-1;j++)
{
if(a[j]>a[j+1])
{
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}
}
main()
{
int a[N]={10,4,-7,32,14,25,-18,20};
int i,n,j,t;
printf("input a number(int):");
scanf("%d",&n);
sort(a,8);/*冒泡排序
for(i=7;i>=0;i--)//插入同时移位
{
if(a[i]>n)
a[i+1]=a[i];
else
{
a[i+1]=n;
break;
}
}
i=0;
while(i<9)
printf("%d ",a[i++]);
}
----------------解决方案--------------------------------------------------------
for(i=7;i>=0;i--)//插入同时移位 改为/*插入同时移位*/ 有点小问题习惯了c ++的解释了.不好意思,呵呵!!!!!
----------------解决方案--------------------------------------------------------
if(a[i]>=k)m=i//尾部缺分号。
//以上逻辑错,得到的m不是正确的插入点if(a[i]>=k)m=i//尾部缺分号。
问一下4楼的,为什么m不 是正确的插入点...
----------------解决方案--------------------------------------------------------
谢谢各位了
----------------解决方案--------------------------------------------------------
最好是 先输入数据!
----------------解决方案--------------------------------------------------------
不仅仅是逗号问题吧,还有很多的错误哦,我按照你的意思把你的程序大致该了一下,运行没有问题!!!
main()
{int t,i,j,k,m,p;
int a[9]={10,4,-7,32,14,25,-18,20};
clrscr();
for(j=0;j<7;j++)
for(i=0;i<7-j;i++)
if(a[i]<a[i+1])
{t=a[i];a[i]=a[i+1];a[i+1]=t;}
printf("input a number:\n");
scanf("%d",&k);
for(i=0;i<8;i++)
if(a[i]<=k)
{m=i;
break;}
for(i=8;i>m;i--)
a[i]=a[i-1];
a[m]=k;
for(i=0;i<9;i++)
printf("%d",a[i]);
}
----------------解决方案--------------------------------------------------------
[回复楼主]
//此处缺头文件
main()
{int t,i,j,k,m,p;
int a[10]={10,4,-7,32,14,25,-18,20};
for(j=0;j<7;i++)//i++应改为j++
for(i=0;i<7-j;i++)
if(a[i]<a[i+1])//这是从大到小排序!
{t=a[i];a[i]=a[i+1];a[i+1]=t;}
printf("input a number:\n");
scanf("%d",&k);
for(i=0;i<8;i++)
if(a[i]>=k)m=i//尾部缺分号。
//以上逻辑错,得到的m不是正确的插入点
for(p=m;p<9;p++)
{t=k;k=a[p];a[p]=k/*缺分号*/}
for(i=0;i<9;i++)
ptintf("%d",a[i]);//应为printf
}
涂色部分问题更大。
----------------解决方案--------------------------------------------------------
语法错误应该自己多看看,自己会改的吧.像少分号这样的事,自己编译的时候可以发现的.
自己上机实现,试着自己改正语法错误,这样才有进步的.
#include"stdio.h"
#define N 10
void sort(int a[],int n)
{
int i,j,temp;
for(i=0;i<n;i++)
for(j=0;j<n-1;j++)
{
if(a[j]>a[j+1])
{
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}
}
main()
{
int a[N]={10,4,-7,32,14,25,-18,20};
int i,n,j,t;
printf("input a number(int):");
scanf("%d",&n);
sort(a,8);/*冒泡排序
for(i=7;i>=0;i--)//插入同时移位
{
if(a[i]>n)
a[i+1]=a[i];
else
{
a[i+1]=n;
break;
}
}
i=0;
while(i<9)
printf("%d ",a[i++]);
}
----------------解决方案--------------------------------------------------------
for(i=7;i>=0;i--)//插入同时移位 改为/*插入同时移位*/ 有点小问题习惯了c ++的解释了.不好意思,呵呵!!!!!
----------------解决方案--------------------------------------------------------
if(a[i]>=k)m=i//尾部缺分号。
//以上逻辑错,得到的m不是正确的插入点if(a[i]>=k)m=i//尾部缺分号。
问一下4楼的,为什么m不 是正确的插入点...
----------------解决方案--------------------------------------------------------
谢谢各位了
----------------解决方案--------------------------------------------------------