0
私は実装したいと思っていますが、何とか私のロジックはコードがうまく動作していないので、これが最良のものではありません。forループ内のテキスト書式設定
数字をスクリーン/テキストファイルに書いて、20回の繰り返しの後にそれらを区切る新しい行があるようにしたい。
ご覧ください。
#include <stdio.h>
#include <stdlib.h>
int main()
{
FILE * File = fopen("NUMBERS.txt", "w");
int *a;
int n;
int i;
int j;
int r;
printf("How many numbers do you wish to enter?\n");
scanf("%d", &n);
a = malloc(n*sizeof(int*));
time_t t;
srand((unsigned)time(&t));
fprintf(File, "%d\n", n);
for(i = 0 ; i < n; i++)
{
r = rand() % 100;
a[i]= r;
printf("%d ", r);
fprintf(File, "%d ", r);
if(a[i] % 20 == 0)
{
printf("\n");
fprintf(File, "\n");
}
}
system("pause");
return 0;
}
出力があるべき(21または任意の高い数)ユーザーが入力したとしましょう:
21 67 24 8 10 27 83 7 89 99 40 69 5 69 12 66 92 99 16 37 22 42
注: 'a = malloc(n * sizeof(int));またはそれ以上:' a = malloc(n * sizeof * a); ' – wildplasser
@wildplasser - あなたは正しいですが、私はbrajevicmの通知この問題は 'int'が' int * '(または最大でも同じバイト数)以下のバイトを使用する可能性が高いためです:-p ...しかしbrajevicm、これを読んでいるなら' malloc'を修正してください見ることは痛いです。 – Myst
私はそれを見てすぐに変更しました。それはおそらく単にタイプミスでした。 – brajevicm