printf ("Результат: %s\n",s);
}
----------------------------------------------------------------
Вариант 4. Выполнить обработку текста из внешнего текстового файла, созданного в редакторе. Результаты обработки поместить во внешний файл. Определить количество строк в исходном тексте. Удалить в каждой строке все четырехбуквенные слова.
Текст программы:
#include <stdio.h>
#include <string.h>
void main()
{
FILE *f=fopen("data.txt","r"); //f - файл для чтения
FILE *f1=fopen("res.res","r"); //f1 - файл для записи
char s[80]; // исходная строка
char res[80]; // результат обработки
char *p; // указатель на слово
int n=0; // счетчик строк
while (!feof(f1)); // пока не конец файла
{
n++; увеличили счетчик строк
*res=0; //Очистили строку-результат
fgets(f,80,s); //Читаем очередную строку
p=strtok(s," "); //Бьем строку на слова
while (*p)
{
if (strlen(p)=4) strcat(res,p); //Если длина слова равна 4
//добавляем его в результат
strcat(res," "); p=strtok(NULL," ");
} fputs(s,f1); //Записали результат в файл
}
fprintf(f1,"\nСтрок в файле %d",n);
fclose(f); //Закрыли файл
}
----------------------------------------------------------------
Вариант 5. Ввести двумерный массив вещественных чисел. Разделить элементы каждой строки матрицы на максимальный элемент этой строки.
Текст программы:
#include <stdio.h> //Библиотека функций ввода-вывода
#include <stdlib.h> //Библиотека стандартных функций
#define n 4 //Число строк массива
#define m 6 //Число столбцов
float a[n][m]; //Массив
//Генерация элементов массива
void genar(int n,m)
{
int i,j;
for (i=0;i<n;i++)
for (j=0;j<m; i++) a[i][j]=random(100); //Элементу присваивается
//случайное значение
}
//Печать массива
void printar()
{
int i;
for (i=0;i<n;i++)
{
for (j=0;j<n; j++) printf ("%5.2d ",a[i,j]);
printf ("\n);
}
}
float divtomax(int *s) //Функция поиска максимального в строке s
//и деления строки на max
{
int i;
float max=s[0];
for (i=1;i<n;i++);
if (s[i]>max) max=s[i];
for (i=0;i<n;i++) a[s][i]/=max;
return max;
}
//Главная функция
void main()
{
int i; //Счетчик столбцов
float res[n]; //Результат
genar(); //Генерируется массив
printf("\nИсходный массив \n"); printar(); //Печать исходного массива
for (i=0;i<n;i++) divtomax[i]; //Обработка массива
printf("\nРезультат \n); printar(); //Печать результата
}
----------------------------------------------------------------
Вариант 6. Выполнить обработку текста из внешнего текстового файла, созданного в редакторе. Результаты обработки поместить во внешний файл. Определить количество слов в каждой строке, сжать каждую строку, удалив лишние пробелы.
Текст программы:
#include <stdio.h>
#include <string.h>
void main()
{
FILE f=fopen("data.txt","r"); //Открыли файл f для чтения
FILE f1=fopen("res.res","r"); //Открыли файл f для записи
char *s; //Буфер ввода
char *res; //Буфер вывода
char *p; //Указатель на текущее слово
while (!feof(f))
{
*res=0; //Инициализация буфера вывода
k=0; //Инициализация счетчика слов
fgets(f,80,s); //Читать строку из файла
p=strtok(s,' ') //Бьем ее на слова, разделенные " "
while (*p) //Пока есть еще слова
{
k++; //Увеличиваем счетчик
strcat(res,p); //Добавили слово в буфер вывода
p=strtok(s,' '); //Ищем новое слово
}
fputs(res,f1); //Записали результат в файл
fprintf(f1,"В предыдущей строке %s слов\n",k); //Напечатали сколько
//слов в строке
}
fclose(f); //Закрыли файлы
}
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.