Code
Program 7
#include <stdio.h>
#include <time.h>
#include <stdlib.h>
#include <math.h>
#define N 72
#define min 10
#define max 100
int fun (int num[]);
int fun1 (int num[]);
int fun2 (int num[]);
int main(){
srand(time(0));
int arr[N] = {0};
for (int i = 0; i < N; i++){
arr[i] = rand()%(max - min + 1) + min;
printf("%d ", arr[i]);
}
printf("\nМинимальное кратное трем: %d\n", fun(arr));
printf("Меньше первого: %d\n", fun1(arr));
printf("Сумма цифр случайного числа: %d\n", fun2(arr));
return 0;
}
int fun (int num[]){
int minn = num[0]; // минимальное кратное 3
for (int i = 1; i < N; i++){
if ( (num[i] < minn) && ( ((int)num[i]/3) == ((double)num[i]/3) ) )
minn = num[i];
}
return minn;
}
int fun1 (int num[]){
int con1 = 0; //меньше первого
for (int i = 0; i < N; i++)
if (num[i] < num[0]) con1++;
return con1;
}
int fun2 (int num[]){
int a = rand()%(N - N/2 + 1) + N/2;
int b = 0;
while(num[a] > 0){
b = b + num[a]%10;
num[a] = (int)((num[a])/10);
}
return b;
}
##############
Program 6
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define N 10
#define N2 7
int main() {
srand(time(0));
int a[N][N2] = {0, 0};
int min = -50, max = 50;
printf("Массив:\n");
for (int i = 0; i < N; i++) {
for (int j = 0; j < N2; j++) {
a[i][j] = rand()%(max - min + 1) + min;
printf("%d\t", a[i][j]);
}
printf("\n");
}
char myfile[] = "array.txt";
FILE *f = fopen(myfile, "w");
if ((f = fopen(myfile, "w")) != 0) {
printf("Работа с файлом\n");
for (int i = 0; i < N; i++) {
for (int j = 0; j < N2; j++) {
fprintf(f, "%d\t", a[i][j]);
}
fprintf(f, "\n");
}
printf("Массив записан в файл\n\n");
}
else
printf("Ошибка\n");
fclose(f);
int new_array[N][N2] = {0, 0};
int num = 0, sum = 0, max1 = 0;
FILE *file = fopen(myfile, "r");
fscanf(file, "%d", &max1);
for (int i = 0; i < N; i++) {
for (int j = 0; j < N2; j++) {
fscanf(file, "%d", &new_array[i][j]);
if (new_array[i][j] < 0){
num++;
}
if ((j == N2)&&(new_array[i][j] > 0)&&(new_array[i][j]%2 == 0))
sum = sum + new_array[i][j];
if ((new_array[i][j] > max1) &&(new_array[i][j]%2 != 0))
max1 = new_array[i][j];
}
}
fclose(file);
printf("Отрицательные: %d\n", num);
printf("sum полож чет: %d\n", sum);
printf("max нечет: %d\n", max1);
return 0;
}
##############
Program 8
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define N 4
#define min -8
#define max 12
double arr_fun (double [N][N], double, int);
double arr_fun1 (double [N][N]);
double arr_fun2 (double [N][N]);
int main() {
srand(time(0));
double arr[N][N] = {0, 0}, sum = 0, average = 0;
int num = 0;
for (int i = 0; i < N; i++){
for (int j = 0; j < N; j++){
arr[i][j] = (double)(rand())/RAND_MAX*(max - min + 1) + min;
printf("%lf\t", arr[i][j]);
sum = sum + arr[i][j];
}
printf("\n");
}
average = sum/(N*N);
printf("Выше среднего:\t%lf\nСреднее:\t%lf\n", arr_fun (arr, average, num), average);
printf("Сумма отриц: %lf\n", arr_fun1 (arr));
printf("Минимальный выше побочной d: %lf\n\n", arr_fun2 (arr));
return 0;
}
double arr_fun (double arr[N][N], double average, int num){ // выше среднего
for (int i = 0; i < N; i++){
for (int j = 0; j < N; j++){
if (arr[i][j] > average)
num = num + 1; // сколько элементов массива превышают среднее значение
}
}
return num;
}
double arr_fun1 (double arr[N][N]){ // сумма отрицательных
double sumneg = 0;
for (int i = 0; i < N; i++){
for (int j = 0; j < N; j++){
if (arr[i][j] < 0)
sumneg = sumneg + arr[i][j];
}
}
return sumneg;
}
double arr_fun2 (double arr[N][N]){ // минимальное выше побочной диагонали
double min_d = arr[0][0];
for (int i = 0; i < N; i++){
for (int j = 0; j < N; j++){
if ( ((i + j) < (N-1)) && (arr[i][j] < min_d) )
min_d = arr[i][j];
}
}
return (double)min_d;
}