みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

プログラムについて(UNIX)

以下のプログラムを部分的で結構ですので
解説していただけないでしょうか?
打ち込んだ数字を10進法に変換して、
その後どうなっているのかがよく分かりません。
よろしくお願いします。

#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#include<math.h>

#define N 127
#define M 121
#define LENGTH 45539


int C[N] ;
int d[LENGTH/N];
int b[LENGTH/N];
float r[LENGTH];
char message[LENGTH/N/7];
int PNread(int);
int PXread(void);


int main()
{

int i, m;
/* Insert the process to input the user No. m here. */
printf("Input the user No. : "); scanf("%d", &m);
if (m < 0 || m > M)
{
printf("You input a wrong user No.\n");
exit(-1);
}

printf("\nThe user No. m is %d. \n", m);
/* Read the spread code for user No. m from data file */
if(PNread(m) == -1)
exit(-1);
/* Display the spread code. */
/* Here is an example to display the first 10 numbers */
if(PXread()== -1)
exit(-1);


int t,k;
float hatD[LENGTH/N];

for(t=0; t < LENGTH/N; t++){
hatD[t]=0;

for(k = t*N; k < (t+1)*N; k++)
hatD[t]+= ((float)r[k]*C[k%N])/((float)N);

d[t] = (hatD[t] >= 0)?1:-1; /*?はif文の省略形である*/
}
for(t = 0; t < LENGTH/N; t++)
b[t] = (d[t] >= 0) ? 0 : 1;
/* 文字に変換する */
for(i = 0; i < LENGTH/N; i += 7)
message[i/7] = b[i]*64 + b[i+1]*32 + b[i+2]*16 + b[i+3]*8 + b[i+4]*4 + b[i+5]*2
+ b[i+6];

/* メッセージの表示 */
printf("Message:\n%s\n", message);

return 0;
}

/* Function of spread code reading */
int PNread(int m)
{
FILE *in;
/* Verify the data file */
if ((in = fopen("PN7.dat", "r"))== NULL)
{
/* Error message */
printf("Error: Cannot find the data file. \n");
return -1;
}
if(m>1)
/* Set the file pointer to the m-th user's spread code */
fseek(in,(m-1)*N*sizeof(int),SEEK_SET);
/* Read the spread code to array C */
fread(C,sizeof(int),N,in);
fclose(in);
return 1;
}



int PXread(void)
{
FILE *in;
int count; float rtemp;

if((in = fopen("Rx7_51.dat", "r"))== NULL)
{
printf("Error; Cannot find the date file. \n");
return -1;
}
for(count = 0; count < LENGTH; count++){
fscanf(in, "%f", &rtemp);
r[count] = rtemp;
}
fclose(in);
return 1;
}

投稿日時 - 2007-10-21 00:57:20

QNo.3447382

すぐに回答ほしいです

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

ANo.1

読み込んでいる2つのファイルの仕様を教えてください。

投稿日時 - 2007-10-21 07:26:22

あなたにオススメの質問