![]() ТОР 5 статей: Методические подходы к анализу финансового состояния предприятия Проблема периодизации русской литературы ХХ века. Краткая характеристика второй половины ХХ века Характеристика шлифовальных кругов и ее маркировка Служебные части речи. Предлог. Союз. Частицы КАТЕГОРИИ:
|
Прототип функции, которой передается массиввозвр _ знач имя_функции (тип_данных *, const int); Пример: Ввода и вывода одномерного целочисленного массива, с помощью функции #include<stdio.h> void vvod_mas(int *,const int); void vivod_mas(int *,const int); Void main() { const int n=5,m=6; int x[n],y[m]; Vvod_mas(x,n); Vvod_mas(y,m); printf("Содержание первого массива:\n"); Vivod_mas(x,n); printf("Содержание второго массива:\n"); Vivod_mas(y,m); } void vvod_mas(int *p,const int k){ for(int i=0;i<k;i++){ printf("[%d]=",i); scanf("%d",(p+i)); } } void vivod_mas(int *p,const int k){ for(int i=0;i<k;i++) printf("[%d]=%d\n",i,*(p+i)); } Задача: Написать следующие функции для одномерного массива: 1. ввод массива, 2. вывод массива, 3 нахождения и максимального элемента и его место, 4. нахождения и минимального элемента и его место 5. сортировка массива по убыванию 6. сортировка массива по возрастанию. Переделать задачу один, так чтобы в программе мы использовали оператор switch, если мы введем 1, то показывает максимальный элемент и его место 2, то показывает минимальный элемент и его место 3, то сортирует массив по убыванию 4, то сортирует массив по возрастанию 5, то работа программы завершена
Двумерные массивы
a00 a01 a02 a03 матрица А размерности 3х4 a10 a11 a12 a13 a20 a21 a22 a23 Для того, чтобы ввести и вывести двумерный массив по строкам необходимо const int n=3,m=4; int x[n][m],i,j; for(i=0;i<n;i++) { for(j=0;j<m;j++) { printf("x[%d][%d]=",i,j); scanf("%d",&x[i][j]); } } for(i=0;i<n;i++) { for(j=0;j<m;j++) printf("x[%d][%d]=%d\n",i,j,x[i][j]); } Для того, чтобы ввести и вывести двумерный массив по столбцам, а вывести по строкам необходимо const int n=3,m=4; int x[n][m],i,j; for(j=0;j<m;j++) { for(i=0;i<n;i++) { printf("x[%d][%d]=",i,j); scanf("%d",&x[i][j]); } } for(i=0;i<n;i++) { for(j=0;j<m;j++){ printf("%d\t",x[i][j]); printf(“\n”); } Задачи:
const int n=3,m=4; int x[n][m],i,j,y[n]; for(i=0;i<n;i++){ for(j=0;j<m;j++){ printf("x[%d][%d]=",i,j); scanf("%d",&x[i][j]); } } for(i=0;i<n;i++){ y[i]=0; for(j=0;j<m;j++) y[i]=y[i]+x[i][j]; }
const int n=3,m=4; int x[n][m],i,j,y[n],buf,buf1; for(i=0;i<n;i++) { for(j=0;j<m;j++) { printf("x[%d][%d]=",i,j); scanf("%d",&x[i][j]); } } for(i=0;i<n;i++){ y[i]=0; for(j=0;j<m;j++) y[i]=y[i]+x[i][j]; } for(int t=0;t<n;t++){ for(i=0;i<n-1;i++){ if(y[i]>y[i+1]){ buf1=y[i]; y[i]=y[i+1]; y[i+1]=buf1; for(j=0;j<m;j++){ buf=x[i][j]; x[i][j]=x[i+1][j]; x[i+1][j]=buf; } } } } puts(""); for(i=0;i<n;i++){ for(j=0;j<m;j++) printf("x[%d][%d]=%d\n",i,j,x[i][j]); }
#include<stdio.h> Void main() { const int n=4,m=3; int mat[n][m]; Int i,j,temp; for(i=0;i<n;i++) { printf("\nВвод %d-ой строки: ",i+1); for(j=0;j<m;j++) scanf("%d",&mat[i][j]); } for(i=0;i<n;i++){ printf("\n\n"); for(j=0;j<m;j++) printf("%d ",mat[i][j]); } for(i=0;i<n*m;i++){ for(j=0;j<m*n;j++){ if(mat[i/m][i%m]<mat[j/m][j%m]){ temp=mat[i/m][i%m]; mat[i/m][i%m]=mat[j/m][j%m]; mat[j/m][j%m]=temp; } } } for(i=0;i<n;i++){ printf("\n\n"); for(j=0;j<m;j++) printf("%d ",mat[i][j]); } }
#include<stdio.h> Void main() { const int n=3,m=3,m1=3; double a[n][m],b[m][m1],c[n][m1]; Int i,j,k; printf("I massiv:\n"); for(i=0;i<n;i++){ for(j=0;j<m;j++){ printf("a[%d][%d]=",i,j); Fflush(stdin); scanf("%lf",&a[i][j]); } } printf("\n II massiv:\n"); for(i=0;i<m;i++){ for(j=0;j<m1;j++){ printf("b[%d][%d]=",i,j); Fflush(stdin); scanf("%lf",&b[i][j]); } } i=0; while(i<n){ j=0; while(j<m1){ c[i][j]=0; k=0; while(k<m){ c[i][j]+=a[i][k]*b[k][j]; k++; } j++; } i++; } for(i=0;i<n;i++){ for(j=0;j<m1;j++){ printf("c[%d][%d]=%.2lf\n",i,j,c[i][j]); } } }
4.6 Контрольные вопросы:
a) которая получает три целых числа и возвращает сумму полученных чисел int sum (a, b, c) { return a+b+c; } b) которая получает два целых числа и печатает деление этих чисел. void printResult (int a, int b) { printf(“%d/%d=%lf\n”,a,b,a/b); return a/b; }
а) приведите два различных оператора, которые присваивают начальный адрес массива number указателю float *pf _______________________________________________. б) напечатайте элементы массива обращаясь к ним через указатель pf ___________________________ ________________________________________________________________________________________ ________________________________.
а) for(i=0; i<10; i++) scanf(“%lf”,a+i); б) for(i=0; i<10; i++) scanf(“%lf”,a[i]); с) for(i=1; i<=10; i++) scanf(“%lf”,&a[i]); д) for(i=0; i<10; i++) scanf(“%lf”,&a[0]+i); 16 Функция ___________ используется для получения случайных чисел. 17 Функция ____________ для того, чтобы при каждом вызове программы выдавались различные числа. Задача: Программа, которая через функции вводит массив и сортирует I массив в возрастающем порядке, а второй II в убывающем порядке и функция вывода массива. А третий массив переписать число из двух массивов, так чтобы они были записаны в возрастающем порядке. СИМВОЛЬНАЯ СТРОКА Не нашли, что искали? Воспользуйтесь поиском:
|