巴尔贝拉球场:C语言问题

来源:百度文库 编辑:高考问答 时间:2024/04/29 22:46:16
jsval函数的功能是:
如果4位数的各位上的数字均是2或4或6或8或0,
统计出满足此条件的数的个数cnt
并把这些数按照大到小的顺序存入数组B中
#include <stdio.h>
#define MAX 200
int a[MAX], b[MAX], cnt=0 ;
void jsVal()
{int i,j,q,b,s,g,k;
for(i=0;i<200;i++)
{q=a[i]/1000;
b=a[i]/100%10;
s=a[i]%100/10;
g=a[i]%10;
if(q==b&&b==s&&s==g&&g==q&&q%2==0)
b[cnt++]=a[i];
}
for(i=0,i<cnt-1;i++)
for(j=1;j<cnt;j++)
{k=b[i];
b[i]=b[j];
b[j]=k;
}
}
void readDat()
{
int i ;
FILE *fp ;
fp = fopen("IN1.DAT", "r") ;
for(i = 0 ; i <MAX ; i++) fscanf(fp, "%d", &a[i]) ;
fclose(fp) ;
}
main()
{
int i ;
readDat() ;
jsVal() ;
printf("满足条件的数=%d\n", cnt) ;
for(i = 0 ; i < cnt ; i++) printf("%d ", b[i]);
printf("\n") ;
writeDat() ;
}
writeDat()
{
FILE *fp ;
int i ;
fp = fopen("OUT1.DAT", "w") ;
fprintf(fp, "%d\n", cnt) ;
for(i = 0 ; i < cnt ; i++) fprintf(fp, "%d\n", b[i]) ;
fclose(fp);
}

jsbal函数是我编的
void jsVal()
{int i,j,q,b,s,g,k;
for(i=0;i<200;i++)
{q=a[i]/1000;
b=a[i]/100%10;
s=a[i]%100/10;
g=a[i]%10;
if(q==b&&b==s&&s==g&&g==q&&q%2==0)
b[cnt++]=a[i];
}
for(i=0,i<cnt-1;i++)
for(j=i+1;j<cnt;j++)
{k=b[i];
b[i]=b[j];
b[j]=k;
}
}
帮我看看是哪错了
谢谢了

for(i=0,i<cnt-1;i++)
for(j=i+1;j<cnt;j++)
{k=b[i];
b[i]=b[j];
b[j]=k;
}

这只是在瞎换顺序,根本没比较大小,所以排列自然有问题