1

この言語で多くの注目を集めているので、私は C で何かを始めています。数字と文字を混ぜてワードジェネレーターを作りました。単語の長さは 8 で、特定の文字が含まれています。

単語を正しく生成するコードを作成したため、助けを求めます。生成された 20,000 単語ごとに最後の単語が txt に保存されます。起動すると、その単語が検出されてコンソールに表示されます。

私がやりたいのは、その最後の単語を取得し、それをサイクルに送信することです。単語がある場合は、単語の先頭ではなく先頭に移動します。

ここにコードがあります。助けを提供できる人に事前に感謝します。

#include <stdio.h>
#include <stdlib.h>
int main(int main, char *argv[]){
int a,b,c,d,e,f,g,h;
char var0[] = {'1','A','2','B','3','C','4','D','5','E','6'};
char var1[] = {'1','A','2','B','3','C','4','D','5','E','6'};
char var2[] = {'1','A','2','B','3','C','4','D','5','E','6'};
char var3[] = {'1','A','2','B','3','C','4','D','5','E','6'};
char var4[] = {'1','A','2','B','3','C','4','D','5','E','6'};
char var5[] = {'1','A','2','B','3','C','4','D','5','E','6'};
char var6[] = {'1','A','2','B','3','C','4','D','5','E','6'};
char var7[] = {'1','A','2','B','3','C','4','D','5','E','6'};
char caracteres[9];
FILE *fp, *sesion;
sesion = fopen("Save_Sesion.txt","r");
if (sesion == NULL){
printf("\nNo Sesion.\n");
}
else{
printf("\nLast key was:\n\n");
  while (feof(sesion) == 0){
  fgets(caracteres,9,sesion);
  printf("%s",caracteres);
  }
}
printf("Press any key to continue\n");
getchar();
for( a=0; a <= 10; a++){
  for( b=0; b <= 10; b++){
    for( c=0; c <= 10; c++){
      for( d=0; d <= 10; d++){
        for( e=0; e <= 10; e++){
          for( f=0; f <= 10; f++){
            for( g=0; g <= 10; g++){
              for( h=0; h <= 10; h++){
                 printf("%c%c%c%c%c%c%c%c\n",var0[a],var1[b],var2[c],var3[d],var4[e],var5[f],var6[g],var7[h]);
              } 
            }
          } 
        }
        fp = fopen("Save_Sesion.txt","w");
        fprintf(fp, "%c%c%c%c%c%c%c%c\n",var0[a],var1[b],var2[c],var3[d],var4[e],var5[f],var6[g],var7[h]);
        fclose(fp);
      } 
    } 
  } 
}
return 0;
}
4

1 に答える 1

1

あなたのコードで気づいたいくつかの問題..

正確に 11^4 である 14641 回の繰り返しの後、ファイル Save_session.txt に書き込んでいます。for ループは 0 から 10 まで、つまり 11 回繰り返します。

ファイルに書き込むと、ループ変数、e、f、g、および h がすべて 10 より大きくなるため、11 番目の位置で配列 var4、var5、var6、および var7 にインデックスを付けることになり、配列インデックスが境界。

于 2013-09-14T14:01:55.600 に答える