新手大家帮忙看下啊
#include "stdio.h"#include "conio.h"
void max(int a[11])
{ int i,j,t;
for(i=1;i<=9;i++)
for(j=1;j<=10-i;j++)
if(a[j]>a[j+1])
{t=a[j];a[j]=a[j+1];a[j+1]=t;}
}
main()
{ int i;
int a[11];
for(i=0;i<10;i++)
scanf("%d",&a[i]);
max(a);
for(i=0;i<10;i++)
printf("%d\t",a[i]);
getch();
}到底哪错了?
----------------解决方案--------------------------------------------------------
i=1的时候j最大是9,j+1等于10,数组越界.
----------------解决方案--------------------------------------------------------
那要怎么写啊?
..那要怎么写啊? ----------------解决方案--------------------------------------------------------
#include "stdio.h"
void max(int a[11])
{ int i,j,t;
for(i=0;i<10;i++)
for(j=0;j<10-i;j++)
if(a[j]>a[j+1])
{t=a[j];a[j]=a[j+1];a[j+1]=t;}
}
void main()
{ int i;
int a[11];
for(i=0;i<11;i++)
scanf("%d",&a[i]);
max(a);
for(i=0;i<11;i++)
printf("%d\n",a[i]);
}
多看书
----------------解决方案--------------------------------------------------------