读书人

简单有关问题 速度解决 给分

发布时间: 2012-03-02 14:40:28 作者: rapoo

简单问题 速度解决 给分
向把一个文件里面的文字转化为数据却转不了,程序没错 为什么?

程序:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>

void main(){
FILE *fp;
char line[1024];
char seps[] = " ', '\n ' ";
char *token;
char temp[286][10][25];
float data[286][10];
char data1[286];
float fold[10][34][22];
char fold1[10][34];
double d[7312];
float temp1=0;
int i=0,j=0,g=0,b=0,m=0,n,a,c=0,kn;
char predict[19],predict1;
int matches=0;
float accu[10],total=0,total1=0,sd;


fp = fopen( "breast-cancer.arff ", "r ");
if(fp == NULL)
{
printf( "Cannot open file: %s\n ", "in.txt ");
exit(0);
}

while( (fgets(line,10240,fp)) != NULL)
{

if ( line[0] == '@ '||line[0] == '% '|| 1 == strlen(line) )
continue;

/*Sleep(5);*/
//printf( "Line %d: %s ", strlen(line), line);

token = strtok( line, seps );
while( token != NULL )
{
/* While there are tokens in "line " */
for(a=0;a <=strlen(token);a++){
temp[i][j][a] = token[a]; }
j++;
/* Get next token: */
token = strtok( NULL, seps );
}
i++;
j = 0;
}
fclose(fp);

//Get Data into array and discretize;
for(i=0;i <286;i++){
for(j=0;j <9;j++){
printf( "%s, ",temp[i][j]);
if(temp[i][j]== "10-19 ") data[i][j]=0;
else if(temp[i][j]== "20-29 ") data[i][j]=1;
else if(temp[i][j]== "30-39 ") data[i][j]=2;
else if(temp[i][j]== "40-49 ") data[i][j]=3;
else if(temp[i][j]== "50-59 ") data[i][j]=4;
else if(temp[i][j]== "60-69 ") data[i][j]=5;
else if(temp[i][j]== "70-79 ") data[i][j]=6;
else if(temp[i][j]== "80-89 ") data[i][j]=7;
else if(temp[i][j]== "90-99 ") data[i][j]=8;

else if(temp[i][j]== "lt40 ") data[i][j]=0;


else if(temp[i][j]== "ge40 ") data[i][j]=1;
else if(temp[i][j]== "premeno ") data[i][j]=2;

else if(temp[i][j]== "0-4 ") data[i][j]=0;
else if(temp[i][j]== "5-9 ") data[i][j]=1;
else if(temp[i][j]== "10-14 ") data[i][j]=2;
else if(temp[i][j]== "15-19 ") data[i][j]=3;
else if(temp[i][j]== "20-24 ") data[i][j]=4;
else if(temp[i][j]== "25-29 ") data[i][j]=5;
else if(temp[i][j]== "30-34 ") data[i][j]=6;
else if(temp[i][j]== "35-39 ") data[i][j]=7;
else if(temp[i][j]== "40-44 ") data[i][j]=8;
else if(temp[i][j]== "45-49 ") data[i][j]=9;
else if(temp[i][j]== "50-54 ") data[i][j]=10;
else if(temp[i][j]== "55-59 ") data[i][j]=11;

else if(temp[i][j]== "0-2 ") data[i][j]=0;
else if(temp[i][j]== "3-5 ") data[i][j]=1;
else if(temp[i][j]== "6-8 ") data[i][j]=2;
else if(temp[i][j]== "9-11 ") data[i][j]=3;
else if(temp[i][j]== "12-14 ") data[i][j]=4;
else if(temp[i][j]== "15-17 ") data[i][j]=5;
else if(temp[i][j]== "18-20 ") data[i][j]=6;
else if(temp[i][j]== "21-23 ") data[i][j]=7;
else if(temp[i][j]== "24-26 ") data[i][j]=8;
else if(temp[i][j]== "27-29 ") data[i][j]=9;
else if(temp[i][j]== "30-32 ") data[i][j]=10;
else if(temp[i][j]== "33-35 ") data[i][j]=11;
else if(temp[i][j]== "36-39 ") data[i][j]=12;

else if(temp[i][j]== "yes ") data[i][j]=0;
else if(temp[i][j]== "no ") data[i][j]=1;

else if(temp[i][j]== "1 ") data[i][j]=0;
else if(temp[i][j]== "2 ") data[i][j]=1;
else if(temp[i][j]== "3 ") data[i][j]=2;

else if(temp[i][j]== "left ") data[i][j]=0;


else if(temp[i][j]== "right ") data[i][j]=1;

else if(temp[i][j]== "left_up ") data[i][j]=0;
else if(temp[i][j]== "left_low ") data[i][j]=1;
else if(temp[i][j]== "right_up ") data[i][j]=2;
else if(temp[i][j]== "right_low ") data[i][j]=3;
else if(temp[i][j]== "central ") data[i][j]=4;

printf( "%f\n ",data[i][j]);
}
}
}

文件是:
'40-49 ', 'premeno ', '15-19 ', '0-2 ', 'yes ', '3 ', 'right ', 'left_up ', 'no ', 'recurrence-events '
'50-59 ', 'ge40 ', '15-19 ', '0-2 ', 'no ', '1 ', 'right ', 'central ', 'no ', 'no-recurrence-events '
'50-59 ', 'ge40 ', '35-39 ', '0-2 ', 'no ', '2 ', 'left ', 'left_low ', 'no ', 'recurrence-events '
'40-49 ', 'premeno ', '35-39 ', '0-2 ', 'yes ', '3 ', 'right ', 'left_low ', 'yes ', 'no-recurrence-events '
'40-49 ', 'premeno ', '30-34 ', '3-5 ', 'yes ', '2 ', 'left ', 'right_up ', 'no ', 'recurrence-events '
'50-59 ', 'premeno ', '25-29 ', '3-5 ', 'no ', '2 ', 'right ', 'left_up ', 'yes ', 'no-recurrence-events '
'50-59 ', 'ge40 ', '40-44 ', '0-2 ', 'no ', '3 ', 'left ', 'left_up ', 'no ', 'no-recurrence-events '
'40-49 ', 'premeno ', '10-14 ', '0-2 ', 'no ', '2 ', 'left ', 'left_up ', 'no ', 'no-recurrence-events '
'40-49 ', 'premeno ', '0-4 ', '0-2 ', 'no ', '2 ', 'right ', 'right_low ', 'no ', 'no-recurrence-events '
'40-49 ', 'ge40 ', '40-44 ', '15-17 ', 'yes ', '2 ', 'right ', 'left_up ', 'yes ', 'no-recurrence-events '
'50-59 ', 'premeno ', '25-29 ', '0-2 ', 'no ', '2 ', 'left ', 'left_low ', 'no ', 'no-recurrence-events '
'60-69 ', 'ge40 ', '15-19 ', '0-2 ', 'no ', '2 ', 'right ', 'left_up ', 'no ', 'no-recurrence-events '
'50-59 ', 'ge40 ', '30-34 ', '0-2 ', 'no ', '1 ', 'right ', 'central ', 'no ', 'no-recurrence-events '
'50-59 ', 'ge40 ', '25-29 ', '0-2 ', 'no ', '2 ', 'right ', 'left_up ', 'no ', 'no-recurrence-events '
'40-49 ', 'premeno ', '25-29 ', '0-2 ', 'no ', '2 ', 'left ', 'left_low ', 'yes ', 'recurrence-events '




[解决办法]
temp[i][j]== "3-5 " -- strcmp(temp[i][j], "3-5 ") == 0

读书人网 >C语言

热点推荐