帮我看看我的C语言程序哪里错了

来源:百度知道 编辑:UC知道 时间:2024/06/22 08:44:11
我要把一串数字按从小到大排列
#include "stdio.h"
int min(int a,int b)
{int t;
if(a<b){t=a;a=b;b=t;}
return b;
}

void main()
{int s[5],k,i,y;
printf("r");
scanf("%s",s);
i=0;
for(;i<5;i++)
{k=i+1;
y=min(s[i],s[k]);
s[i]=y;
}
printf("%s",s);

}

错误挺多的
最严重的就是你用了%s,那个是字符串,而你定义的整形数组
所以输入就有很大的问题
改你的有点麻烦
不如告诉你一个排列大小的新方法吧!
冒泡法
按照你的要求我随便编了如下的代码:
#include "stdio.h"
void main()
{
int s[5],k,i,j;
for(i=0;i<5;i++)
scanf("%d",&s[i]);
for(i=0;i<4;i++)
for(j=0;j<4-i;j++)
if(s[j]>s[j+1])
{
k=s[j];
s[j]=s[j+1];
s[j+1]=k;
}
for(i=0;i<5;i++)
printf("%d ",s[i]);
}
等你学完了C语言就应该会很熟练地掌握这个很重要的方法了
代码你就自己去体味一下吧!
加油学习哦!

void main()
{int s[5]="",k=0,y=0;
printf("请输入5个数:");
for(int j=0;j<5;j++)
{
scanf("%s",&s);
}
for(int i=0;i<5;i++)
{
K=i+1;
y=min(s[i],s[k]);
s[i]=y;
}
for(int m=0;m<5;m++)
{
printf("%s",s);
}

}