挪威有什么好玩的地方:有C++高手进来看看

来源:百度文库 编辑:高校问答 时间:2024/04/17 00:56:32
// url.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<conio.h>
#include<math.h>
#include<iostream.h>
char xx[12][30];
double x[12][13];
double d[100][100];

void ReadTxt()
{
FILE *fp;
int i=0;
char *p,str[10];
fp=fopen("in.txt","r");
while(fgets(xx[i],30,fp)!=NULL)
{
p=xx[i];
int k,j,data;
while(*p!='\0')
{
data=0,k=0,j=0;
while(*p!=','&& *p!='\0') str[k++]=*p++;
str[k]='\0';
x[i][j++]=atof(str);
if(*p==',')p++;
for(k=0;k<j;k++)cout<<x[i][k]<<" ";
}
i++;
cout<<endl;
}
//fclose(fp);
}

void Array()
{
int i,j;
double data=0.0;

for(i=0;i<12;i++)
{
for(j=0;j<13;j++)
{
data+=x[i][j];
}
for(j=0;j<13;j++)
{
x[i][j]/=data;
cout<<x[i][j]<<" ";
}
data=0.0;
cout<<endl;
}

}
void Url_similar()
{
int i,j,k;
double ch=0,a=0,b=0;

for(i=0;i<12;i++)
{
for(j=i+1;j<13;j++)
{
for(k=0;k<12;k++)
{
ch+=x[k][i]*x[k][j];
a+=x[k][i]*x[k][i];
b+=x[k][j]*x[k][j];
}
a=sqrt(a);
b=sqrt(b);
d[i][j]=ch/(a*b);
cout<<d[i][j]<<" ";
ch=0;a=0;b=0;
}
}
cout<<endl;
}

void main()
{
ReadTxt();
Array();
Url_similar();
}

PS:那个readtxt函数是用来把in.txt中的数据读到c++中并把字符型的数转换成float型的数存在x[][]数组中,然后用x[][]中的数值进行下面两个函数的计算,现在的问题就是x[][]在readtxt函数中能读出正确的数来,但是出了readtxt函数x[][]中的数就都变成0了,没法用来下面函数的计算了

改成static double x[12][13];