c语言 函数调用 在一个一维数组中插进一个数字 并照顺序排好输出 我编的这个不能通过组建 不知道哪错了

#include<stdio.h>voidmian(){voidss(inta[5],intx);intb[5]={65,32,45,95,25};ss(b,35);}v... #include<stdio.h>

void mian(){

void ss(int a[5],int x);

int b[5]={65,32,45,95,25};

ss(b,35);

}

void ss(int a[5],int x){

for(int j=0;j<4;j++){

for(int k=0;k<4-j;k++){

if(a[k]<a[k+1]){

int t=a[k];
a[k]=a[k+1];
a[k+1]=t;
}
}
}

if(x<a[0]){

printf("%d",x);

for(int i=0;i<5;i++)

printf("%d",a[i]);

}
if(x>a[0]&&x<a[4]){

for(int i=0;i<5;i++){

printf("%d",a[i]);

if(x>a[i]&&x<a[i+1])

printf("%d",x);
}
}
if(x>a[5]){

for(int i=0;i<5;i++)

printf("%d",a[i]);

printf("%d",x);

}

printf("\n");
}

前几天不用函数做过这个 现在换成函数做就不行了 烦啊
展开
 我来答
doudou745
2011-11-19 · TA获得超过233个赞
知道小有建树答主
回答量:132
采纳率:0%
帮助的人:143万
展开全部
楼主,main函数写错了!!应该为void main()
========================================================

#include<stdio.h>

void main(){

void ss(int a[5],int x);

int b[5]={65,32,45,95,25};

ss(b,35);

}

void ss(int a[5],int x){

for(int j=0;j<4;j++){

for(int k=0;k<4-j;k++){

if(a[k]<a[k+1]){

int t=a[k];
a[k]=a[k+1];
a[k+1]=t;
}
}
}

if(x<a[0]){

printf("%d",x);

for(int i=0;i<5;i++)

printf("%d",a[i]);

}
if(x>a[0]&&x<a[4]){

for(int i=0;i<5;i++){

printf("%d",a[i]);

if(x>a[i]&&x<a[i+1])

printf("%d",x);
}
}
if(x>a[5]){

for(int i=0;i<5;i++)

printf("%d",a[i]);

printf("%d",x);

}

printf("\n");
}
百度网友b4e3b11
2011-11-19 · 超过15用户采纳过TA的回答
知道答主
回答量:45
采纳率:0%
帮助的人:26.2万
展开全部
2楼改了数组长度,也行;3楼的还是不够简便;用我的吧,简单!

#include<stdio.h>

void main()
{

void ss(int a[],int x);

int b[5]={65,32,45,95,25};/*定义数组*/

ss(b,35); /*调用函数*/

}

void ss(int a[5],int x)
{

int j,k;

for(j=0;j<4;j++)
{

for(k=0;k<4-j;k++)
{

if(a[k]<a[k+1]) /*说明是从大到小排列*/
{

int t=a[k];
a[k]=a[k+1];
a[k+1]=t;
}
}
}
for(k=0;k<5;k++) /*你那段太麻烦了,用这个吧,简单点好*/
{

if(x>a[k])
printf("%d ",x);
printf("%d ",a[k]);
}
printf("\n");
getch();
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
淦海瑶s1
2011-11-19 · TA获得超过3646个赞
知道大有可为答主
回答量:3341
采纳率:100%
帮助的人:736万
展开全部
#include<stdio.h>
int a[6]={65,32,45,95,25};
void ss(int a[5],int x)
{
int j,k,t;
a[5]=x;
for(j=0;j<6;j++)
for(k=i+1;k<6;k++)
if(a[j]<a[k])
{
t=a[j];
a[j]=a[k];
a[k]=t;
}
}
main()
{
int i;
ss(a[5],35);
for(i=0;i<6;i++)
printf("%d",a[i]);
printf("\n%d",x);
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
艺燊
2011-11-19 · TA获得超过257个赞
知道小有建树答主
回答量:113
采纳率:0%
帮助的人:111万
展开全部
#include<stdio.h>
void main(){
void ss(int a[6],int x);
int b[6]={65,32,45,95,25};
ss(b,35);
}
void ss(int a[6],int x)
{
for(int j=0;j<4;j++){
for(int k=0;k<4-j;k++){
if(a[k]<a[k+1]){
int t=a[k];
a[k]=a[k+1];
a[k+1]=t;
}
}
}
for(int i=0;i<5;i++)
if(x>a[i])
break;
for(j=4;j>=i;j--)
a[j+1]=a[j];
a[i]=x;
for(i=0;i<6;i++)
printf("%d ",a[i]);
printf("\n");
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
aaaqiutao
2011-11-19 · 超过42用户采纳过TA的回答
知道小有建树答主
回答量:136
采纳率:50%
帮助的人:83.2万
展开全部
此程序杂乱无章,没有结构性和层次感,编写者没有清晰的思路,建议采纳二楼答案。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式