为何该程序在应输出数组的同时应输出的sum数不相符?多谢

wangtwo88 2009-05-15 09:46:12
以下程序是对比找出两个数组文件中输出有相同四码的数组。并在输出数组的同时输出该数组的sum得数。求助问题是sum输出应该是21但输出的却不是,那错误出在那里?(该sum数要加在输出数组的第六位上.例如:5 6 11 12 21 21)。以下是我写的程序和两个文件中的数组。多谢指教!

建立的两个文本文件
e:\\FILE01.txt e:\\FILE02.txt
5 6 11 12 21 5 10 11 12 21
5 8 14 15 22 1 10 11 12 21
3 5 8 9 21 8 9 12 14 22
1 5 11 12 21
5 6 11 12 22

#include<stdio.h>
int b[500][5];
int OK;
void xdu1(int a[][5],int OK);
int KO;
void xdu2(int b[][5],int KO);
int OKKO;
void shan3(int a[][5],int OK);
int OKKO1;
void main()

{
int a[500][5];
OK=3;
xdu1(a,OK);
KO=5;
xdu2(b,KO);
shan3(a,OK);
printf("OKKO1=%d",OKKO1);
printf("\n");

}

void xdu1(int a[][5],int OK)
{
int i,j;
FILE *pf;
if((pf=fopen("e:\\FILE01.txt","r"))==NULL)
{
printf("Cannot open file!028v");
return;
}
for(i=0;i<OK;i++)
for(j=0;j<5;j++)
{
fscanf(pf,"%4d",&a[i][j]);
fscanf(pf,"\n");
}
fclose(pf);
}

void xdu2(int b[][5],int KO)
{
int i,j;
FILE *pf1;
if((pf1=fopen("e:\\FILE02.txt","r"))==NULL)
{
printf("Cannot open file!029v");
return;
}
for(i=0;i<KO;i++)
for(j=0;j<5;j++)
{
fscanf(pf1,"%4d",&b[i][j]);
fscanf(pf1,"\n");
}
fclose(pf1);
}


void shan3(int a[][5],int OK)
{
int counter1,sum;
int i,j,s,AA;
for(i=0;i<OK;i++)
{
counter1=0;
for(s=0;s<KO;s++)
{
AA=0;sum=0;
for(j=0;j<5;j++)
if(b[s][j]==a[i][j])//对比四码相同的数
{
AA++;
sum=AA+j+sum;//累加计数
if(AA==4)
counter1=AA;
}
}
if(counter1>=4)
{
a[i][5]=sum; //应输出的是:5 6 11 12 21 21 21就是应输出的sum数。但实际输出的是24
for(j=0;j<6;j++)
printf("%4d",a[i][j]);
printf("\n");
OKKO1++;
}
}
}
...全文
53 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
liliangbao 2009-05-16
  • 打赏
  • 举报
回复
sum要求什么?
if(b[s][j]==a[i][j])//对比四码相同的数
{
AA++;
sum=AA+j+sum;//AA从1~4,j从0~3,sum应该为16
if(AA==4)
counter1=AA;
}
Paradin 2009-05-15
  • 打赏
  • 举报
回复
upup

70,037

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧