刚结束的三级数据库上机考的疑问。。。

来源:百度知道 编辑:UC知道 时间:2024/05/09 11:09:00
这次还算幸运,抽到简单的题目。
可是运行出来时结果始终为:满足条件的个数为 0;
我看了半天,也弄了半天,始终为0.
然后我想结果是不是就是 0。
就把一个不等于改成了等于(题目要求是不等于),后来就出来了很多数。
我就想 是不是故意这样的,是最后满足条件的个数为0.后来在 上机书上看到了一模一样的题目。运行了一样,结果不是0.紧张呀。到底怎么回事。
我写的程序肯定没有错呀。。
#include<stdio.h>
#define MAX 200
int a[MAX],b[MAX],cnt=0;
void writeDat();

void jsVal()
{
int i,j;
int a1,a2,a3,a4;
int temp;
for(i=0;i<200;i++)
{
a4=a[i]/1000;
a3=a[i]%1000/100;
a2=a[i]%100/10;
a1=a[i]%10;
if((a4-a3-a2-a1)>=0 && a[i]%2!=0)
/*如果千位数减百位数再减十位数最后减个位数得出的值大于等于零且此4位数是奇数*/
{
b[cnt]=a[i];
cnt++;
}
}
for(i=0;i<cnt-1;i++)
for(j=i+1;j<cnt;j++)
if(b[i]>b[j])
{
temp=b[i];
b[i]=b[j];

你的排序有有问题,应该是i<cnt 即
不信就编一个小程序测试一下吧
这个很基础的
for(i=0;i<cnt;i++)
for(j=i+1;j<cnt;j++)
if(b[i]>b[j])
{
temp=b[i];
b[i]=b[j];
b[j]=temp;
}
}