#include <stdio.h> #include <stdlib.h> #include <time.h> int main(void){ char bin[100]; char bin2[100]; char *p; int pcnt; int error; int i; /* 乱数を初期化する */ srand(time(0)); /* データを入力する */ printf("Error Rate (%%) ? "); scanf("%d", &pcnt); while(1) { printf("Binary Data ? "); scanf("%s", bin); p = bin; /* 入力情報をコピーする */ strcpy(bin2, bin); /* 実行の打ち切り */ if( *p != '0' && *p != '1') break; for(i = 1; i <= 100; i++){ /* 入力情報を戻す */ strcpy(bin, bin2); /* 番地を戻す */ p = bin; /* 確率pcnt%でのノイズ混入を実行する */ while( *p != '\0' ) { error = (int)rand()%100 < pcnt; if( error ) { if( *p == '0') *p = '1'; else *p = '0'; } p++; } printf("%s\n", bin); } } return 0; }このプログラムを実行すると、
Error Rate? 0%(入力)
Binary Data? 00000(入力)
00000
00000
・・・
00000
と出力をするのですが・・・この出力を
0 0 0 0 0
0 0 0 0 0
・・・
0 0 0 0 0
としたいと思ってます。しかし先ほど質問して教えていただいた出力に間隔をあける方法が使えません。
この場合は何か間隔をあける方法はあるのでしょうか?
何かアドバイスを下さい。よろしくお願いします。