请C达人帮帮忙解释一下这里的几个语句的意思

来源:百度知道 编辑:UC知道 时间:2024/06/03 14:14:48
#include<stdio.h>
#define MAX 200
int a[MAX],b[MAX],cnt=0;
void writeDat();
void jsVal()
{
int i,j,temp;
int a1,a2,a3,a4;
for(i=0;i!=200;i++)
{
a1=a[i]%10;
a2=a[i]%100/10;
a3=a[i]%1000/100;
a4=a[i]/1000;
if(a4+a2=a3+a1&&a1%2==0)
{
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];
b[j]=temp;
}
}
void readDat()
{
int i;
FILE *fp;
fp=fopen("IN22.DAT","r");
for(i=0;i<MAX;i++)
fscanf(fp,"%d",&a[i]);
fclose(fp);
}
void main()
{
int i;
readDat();
jsVal();
printf("满足条件的数=%d\n",cnt);
for(i=0;i<cnt;i++)
printf("%d",b[i]);
printf("\n");
writeDat();
}
void writeDat()
{
FILE *fp;
int i;
fp=fopen("

打开 IN22.DAT 这个文件,r 是readonly 只读
然后下面fscanf(fp,"%d",&a[i]); 在这个文件里读一个十进制的数字, fp是指到文件的,然后 %d你要读的类型 &a[i] 是你要存的地方,好像在源程序里面那个是在循环里的,好像是想读max那么多个,但是这样是用不了的,我觉得哈,你必须要把这个scanf 先刷新一次,要不会一直都第一个十进制数的,然后最后fclose(fp); 是关闭文件

FILE *fp; //定义一个文件指针
fp=fopen("IN22.DAT","r");//以只读形式打开IN22.DAT
fscanf(fp,"%d",&a[i]); //格式划把&a[i]里的内容输入到文件FP指的地方
fclose(fp);//关闭文件

FILE *fp; //这唏是定义一个文件类型的指针
fp=fopen("IN22.DAT","r");//这句是以只读模式打开名为in22.dat文件.
if(fp,"%d",&a[i]); //这句是说如果文件中的数据存在即不为0
fclose(fp);这句是关闭打开的文件.

FILE *fp; //用C的方式定义一个文件指针
fp=fopen("IN22.DAT","r");//fopen函数以只读方式打开in22.dat文件
以下是二段的注释
fscanf(fp,"%d",&a[i]); //把a[i]里的内容输入至fp指针指向的文件的内容中
fclose(fp);//关闭fp指针所指向的文件