Вывести в файл 30 раз массив из шести символов - C (СИ)
Формулировка задачи:
надо вывести в файл 30 раз массив из шести символов, каждый раз чтоб он начинался с новой строки,
символы задавать рандомно. Что то не работает прога.
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
char array[6];
char alpha[52]={'q','w','e','r','t','y','u','i','o','p','a','s','d','f','g','h','j','k','l','z','x','c','v','b','n','m','Q','W','E','R','T','Y','U','I','O','P','A','S','D','F','G','H','J','K','L','Z','X','C','V','B','N','M'};
int i;
int a;
int n=0;
char b;
FILE *fp;
fp = fopen("input.txt","w");
srand(time(NULL));
while (n<30){
for (i=0;i<=5;i++)
{
a=rand()%52;
array[i]=alpha[a];
b=array[i];
fprintf(fp, "%p", b);
}
printf(fp," /n");
n=n+1;
fclose(fp);
}
}Решение задачи: «Вывести в файл 30 раз массив из шести символов»
textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
int main()
{
char alpha[52]={'q','w','e','r','t','y','u','i','o','p','a','s','d','f','g','h','j','k','l','z','x','c','v','b','n','m','Q','W','E','R','T','Y','U','I','O','P','A','S','D','F','G','H','J','K','L','Z','X','C','V','B','N','M'};
int n=0;
FILE *fp;
fp = fopen("input.txt","w");
while (n<30){
for (int i=0;i<6;i++)
{
fprintf(fp, "%c ", alpha[rand()%52]);
}
fprintf(fp,"\n");
n++;
}
fclose(fp);
}
Объяснение кода листинга программы
В этом коде используется язык программирования C.
- Объявляется массив символов
alphaразмером 52, который заполняется значениями из ряда 'qwertyuiopasdfghjklzxcvbnm'. - Создается переменная
nдля подсчета количества записей в файл. - Открывается файл
input.txtв режиме записи с помощью функцииfopen. - В цикле
whileпри условии, чтоnменьше 30, происходит запись в файл. - В цикле
forперебираются 6 символов из массиваalphaс помощью функцииrand()выбирается случайный индекс символа. - С помощью функции
fprintfв файл записывается символ и пробел. - После каждой записи в файл выводится символ новой строки
\n. - Переменная
nувеличивается на 1. - По завершении цикла
whileфайл закрывается с помощью функцииfclose.