Получить среднее арифметическое положительных элементов - C (СИ)
Формулировка задачи:
В двумерном массиве целочисленном получить среднее арифметическое положительных элементов.
Как переделать код под эту задачу
#include<stdlib.h> #include<stdio.h> #include<math.h> #include<string.h> #include"logotip.c" #include"time.h" main(int argc,char* argv[]) { logo(); puts("Краткое изложение задачи:"); puts("Транспонировать матрицу IxJ"); puts("Выполнял Рожкин Павел Александрович,ИВТ-12"); puts("Нажмите Enter");getchar(); char buffer[20]; int mass[100][100];//massiv int i,j;//stroka,stolbez massiva int a=0,b=0;//Razmer massiva b scanf if(argc<2) {Mark4: printf("Для вывода спраки %s Справка",argv[0]);getchar();exit(0);} //SpraBka if(argc>4) goto Mark4; if(strcmp(argv[1],"Справка")==0) {printf("Создание матрицы происходит через команндую стороку для этого пишите %s Ручной <i><j> или %s Рандом <i><j>(без <>,размер по столбацам и строкам не должен привышать 100)\n",argv[0]); printf("Вы можете вводить матрицу 2 способами,используйте: %s Ручной ,%s Рандом\n",argv[0],argv[0]); printf("Нажмите Enter!");getchar();exit(0);} a=atoi(argv[1]); b=atoi(argv[1]); if(i>100) or (j>100){printf("Слишком большой размер матрицы(i и j должны быть меньше 100)\n");goto Mark4;exit(0);} if(i<2) or (j<2){printf("Слишком Маленький размем матрицы(i и j должны быть больше 2)\n");goto Mark4;exit(0);} printf("Вы задали матрицу с размером строк = %d ,с размером столбцов = %d\n",i,j); printf("\n"); printf("\n"); printf("\n"); printf("\n"); if(strcmp(argv[1],"Ручной")==0) {for(i=0;i<a;i++)//Hachalo BBoda massiva { for(j=0;j<b;j++) { printf("Введите значение элемента матрицы[%d][%d]\n",i,j); fgets(buffer,20,stdin); mass[i][j]=atoi(buffer); }} }//Okonchanie Bboda massiva if(strcmp(argv[1],"Рандом")==0) { for(i=0;i<a;i++) {srandom(time(NULL)); for(j=0;j<b;j++) mass[i][j]=rand()%100; }} printf("\n"); printf("\n"); printf("Вы задали матрицу \n"); for(i=0;i<a;i++)//Hachalo Bbiboda massiva {for(j=0;j<b;j++) { printf("mass[%d][%d]=%d\t",i,j,mass[i][j]); printf("\n"); }}//Okonchanie Bbiboda massiva printf("\n"); printf("\n"); //Ha4alo Bbipolnenie osnovnoi zeli programmbi printf("Транспонируем матрицу\n"); { for(i=0;i<a;i++) {for(j=0;j<b;j++) printf("mass[%d][%d]=%d\t)",i,j,mass[j][i]); printf("\n"); } printf("\n"); } }
Решение задачи: «Получить среднее арифметическое положительных элементов»
textual
Листинг программы
#include <stdio.h> #include <stdlib.h> #include <time.h> #define SIZE1 100 //размеры массива #define SIZE2 100 //размеры массива int main(void) //ну сколько можно уже - int main. { int mx[100][100]; int i,j; int sum=0,cnt=0; srand(time(NULL)); for (i=0;i<SIZE1;i++) { for(j=0;j<SIZE2;j++) { mx[i][j]=-50+rand()%100; //заполняем случайными числами printf("%3d ",mx[i][j]); } puts(""); } for (i=0;i<SIZE1;i++) //по строкам { for(j=0;j<SIZE2;j++) //по столбцам { if (mx[i][j] > 0) { sum+=mx[i][j]; //суммируем положительные элементы cnt++; //считаем кол-во положительных элементов } } puts(""); } printf("%s%d%s%d%s%d\n","Average:",(sum/cnt)," Pol.Elem: ",cnt, " Sum: ", sum); //sum/cnt - ср. арифметическое system("PAUSE"); return 0; //ну сколько можно уже }
Объяснение кода листинга программы
- Включаем необходимые заголовочные файлы для работы с I/O и генерации случайных чисел
- Определяем размеры массива
- Инициализируем переменные для подсчета суммы и количества положительных элементов, а также запускаем генератор случайных чисел
- Заполняем массив случайными числами от -50 до 50
- Выводим все элементы массива построчно
- Подсчитываем количество положительных элементов и суммируем их значения
- Выводим среднее арифметическое положительных элементов, количество положительных элементов и сумму на экран
- Ждем нажатия клавиши для завершения работы программы
- Возвращаем 0, чтобы указать, что программа успешно завершилась
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д