求大神看一下哪里出错了,用c语言写的余弦相似性和皮尔逊相关系数,编译没有问题,但出不来结果 20

ints1[943][1683];#include<iostream.h>#include"stdafx.h"#include"stdio.h"#include"stdl... int s1[943][1683];
#include<iostream.h>
#include "stdafx.h"
#include"stdio.h"
#include"stdlib.h"
#include"math.h"
#define usernum 943
#define itemnum 1683
int main()
{
printf("+++++++++++++++++++++++++++++++++++++++");
int i,u,m,r,w;
FILE *fp;

/*打开文件*/

fp=fopen("c:\\100k.txt","r"); /*假设u1.base在d盘根目录下*/

if(!fp) return 0;
else printf("succeed\n");

for(i=0;i<100000;i++) /*假定有j行*/

{ fscanf(fp,"%d %d %d %d ",&u,&m,&r,&w); /*读一个数据*/
s1[u][m]=r;
/* printf("user:%dmovie:%d:ratings:%d\n",u,m,r);*/
}

/* 关闭文件 */

fclose(fp);
/***********************************************************/
/*double COSINE(){*/
double AB[usernum-1]={0.0};/*用户一与其他942个用户之间的向量乘积*/
double consine[usernum],re;
double A=0;/*用户一向量摸的初始化*/
double B=0;/* 用户n向量摸的初始化*/
int aver[usernum];
int sum,o;
int l=0,j;
for(o=0;o<943;o++)/*计算每个用户的评价平均分并存储在aver[]数组中*/
{ sum=0;
for(i=0;i<1683;i++)
{
sum+=s1[o][i];
if(s1[o][i]!=0)
l++;
aver[o]=sum/l;
}printf("llllllllllllllllllll");
}
for(i=0;i<943;i++)
{
for(j=0;j<1683;j++)
{
if(s1[i][j]==0)
{
s1[i][j]=aver[i];
}
}
}
for(i=0;i<1683;i++)
{
A += s1[0][i] *s1[0][i];
}
for (i=0; i <1684; i++)
{
for(j=1;j<944;j++)
{
B += s1[j][i] *s1[j][i];
AB[j]+= s1[1][i]* s1[j][i];
consine[j]=AB[j]/(A*B);
}
}
/*返回最近的5个用户*/
double sum1=0.0;
for(i=0;i<=942;i++)
{
sum1+=consine[i];
re=sum/942;
}
double p=0.0,f=re;
int n;
for(j=0;j<=5;j++)
{
for(i=0;i<=942;i++)
{
if(consine[i]<f&&consine[i]>p)
{
f=consine[i];
n=i;
}
}
printf("%d %d\n",n,consine[n]);
p=f;
f=sum;
}
/*******************************************************************/
double t1[1683],t2[1683],sum4,sum2,sum3;
double re2[943];int s;
for(i=1;i<943;i++)
{
sum4=sum2=sum3=0;
s=0;
for(j=1;j<1683;j++)
{
t1[s]=s1[0][j]-aver[0];
t2[s]=s1[i][j]-aver[i];
s++;
}
for(i=0;i<s;i++) {

printf("%f",t2[i]);}

/* for(j=0;j<=s;j++)
{
sum4+=t1[j]*t2[j];
sum2+=t1[j]*t1[j];
sum3+=t2[j]*t2[j];
re2[i]=sum4/(sqrt(sum2)*sqrt(sum3));
}
}
for(i=0;i<s;i++)
printf("%f\n",re2[i]);*/
}
return 0;

}
展开
 我来答
噯殉S
2017-08-17 · 超过13用户采纳过TA的回答
知道答主
回答量:40
采纳率:0%
帮助的人:23.7万
展开全部
有的版本的VS没有stdafx.h这个头文件,相应的头文件是afx.h
你把
#include "stdafx.h"
改成
#include "afx.h"
应该就行了。
没有水印的钞票
2013-07-21 · TA获得超过768个赞
知道小有建树答主
回答量:388
采纳率:0%
帮助的人:97.8万
展开全部
……
……
……
本人渣高数,今天太晚了,不研究了……
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友4b3cd50
2019-04-22
知道答主
回答量:1
采纳率:0%
帮助的人:774
展开全部
这是什么平台写的?是不是读数据循环处的问题?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式