C语言小代码求助~
这是一个输入10个数字然后由小到大排序的代码:#include<stdio.h>#include<conio.h>#defineN10intmain(){printf("...
这是一个输入10个数字然后由小到大排序的代码:
#include<stdio.h>
#include<conio.h>
#define N 10
int main()
{
printf("请输入十个数字\n");
int b,c,d;
int a[N];
for(b=0;b<N;b++)
scanf("%d ",&a[b]);
for(c=b+1;c<N;c++)
{
if(a[b]<a[c])
{ d=a[b]; a[b]=a[c];a[c]=d;}
}
for(b=0;b<N;b++)
printf("%d ",a[b]);
getch();
return 0;
}
然而这个代码并不能得出正确结果,只能显示输入的数字,并把最后一个输入的数字吃掉=、=
求助大神~这代码哪里有问题? 展开
#include<stdio.h>
#include<conio.h>
#define N 10
int main()
{
printf("请输入十个数字\n");
int b,c,d;
int a[N];
for(b=0;b<N;b++)
scanf("%d ",&a[b]);
for(c=b+1;c<N;c++)
{
if(a[b]<a[c])
{ d=a[b]; a[b]=a[c];a[c]=d;}
}
for(b=0;b<N;b++)
printf("%d ",a[b]);
getch();
return 0;
}
然而这个代码并不能得出正确结果,只能显示输入的数字,并把最后一个输入的数字吃掉=、=
求助大神~这代码哪里有问题? 展开
1个回答
展开全部
#include<stdio.h>
#define N 10
int main()
{
printf("请输入十个数字\n");
int b,c,d;
int a[N];
for(b=0;b<N;b++)
scanf("%d",&a[b]);
for(b = 0; b < N; ++b)
for(c=b+1;c<N;c++){
if(a[b]>a[c])
{ d=a[b]; a[b]=a[c];a[c]=d;}
}
for(b=0;b<N;b++)
printf("%d ",a[b]);
return 0;
}
追问
大神大神~好神奇!
为什么这样就可以用了?
我的代码出了什么问题=。=
追答
说两个关键的 一个是为什么你输入十一个才有用 因为你的scanf("%d ",&a[b]); 双引号多了空格 其实你输完十个再加个空格就可以了 这个是格式化的问题
排序是你的算法根本不对 bubble排序自己多看一下 把逻辑理解了
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询