//Two-dimensional array. #include <stdlib.h> #include <iostream.h> #include <conio.h> int const N=100,M=100; void input (double A[N][N],int n) { int k=0; for (int i=0;i<n;i++) for (int j=0;j<n;j++) { A[i][j]=random(100);//k++; } } void print (double A[N][N],int n) { for (int i=0;i<n;i++) { for (int j=0;j<n;j++) { cout.width(4); cout<<A[i][j]<<' '; } cout<<endl; } cout<<endl; } int main() { double A[N][N],B[N][N]; randomize(); int n=5,sum=0,counter=0; input(A,n); print(A,n); for (int i=0;i<n;i++) for (int j=0;j<n;j++) {B[i][j]=0; if (i<j) for (int k=0;k<n;k++) for (int l=0;l<n;l++) if (k<=l&&k>=i&&l<=j) { sum+=A[k][l]; counter++; } if (i>=j) for (int k=0;k<n;k++) for (int l=0;l<n;l++) if (k>=l&&k<=i&&l>=j) { sum+=A[k][l]; counter++; } B[i][j]=sum/counter; sum=0; counter=0; } print(B,n);
getch(); return 0; }
Двумерный массив заполняется нулями.Некоторые, случайным образом выбранные, нули заменяются на единицы. Заполнить все строки и столбцы, содержащие хотя бы одну единицу, единицами.
Вот исходный код С++
//A two-dimensional array is filled by zeroes. Some random zeroes are replaced by '1'. //To fill all rows and columns that contain at least one '1' by ones. #include <stdio.h> #include <string.h> #include <math.h> #include <stdlib.h> #include <conio.h> const int n=5; int mass[n][n],g,x,y; void check(int i,int j) {randomize(); g=0; for (x=0;x<n;x++) if (mass[x][j]==1 && x!=i) g=1; for (y=0;y<n;y++) if (mass[i][y]==1 && y!=j) g=1; } void main(void) {for (int i=0;i<n;i++) for (int j=0;j<n;j++) mass[i][j]=0; for (int i=0;i<=3;i++) mass[random(n)][random(n)]=1; for (int i=0;i<n;i++) {for (int j=0;j<n;j++) printf("%i",mass[i][j]); printf("\n"); } printf("\n"); for (int i=0;i<n;i++) for (int j=0;j<n;j++) {if (mass[i][j]==0) check(i,j); if (g==1) mass[i][j]=2; g=0; } printf("\n"); for (int i=0;i<n;i++) for (int j=0;j<n;j++) if (mass[i][j]==2) mass[i][j]=1; for (int i=0;i<n;i++) {for (int j=0;j<n;j++) printf("%i",mass[i][j]); printf("\n"); } getch(); }
Известны первая строка и первый столбец двумерного массива. Заполнить массив по следующему принципу: элемент равен сумме своих левого и верхнего соседей.
Вот такой исходный код С++
//The first row and the first column of a two-dimensional array are known. //To fill the array according to the next rule: //the element is equal to the sum of the left and top neighbours. #include <iostream.h> #include <string.h> #include <math.h> #include <stdlib.h> #include <conio.h> const int n=8; void main(void) {randomize(); int mass[n][n]={0}; for (int i=0;i<n;i++) mass[0][i]=random(5); for (int j=0;j<n;j++) mass[j][0]=random(5); for (int i=0;i<n;i++) { for (int j=0;j<n;j++) cout<<mass[i][j]<<' '; cout<<endl; } for (int i=1;i<n;i++) for (int j=1;j<n;j++) mass[i][j]=mass[i][j-1]+mass[i-1][j]; for (int i=0;i<n;i++) {for (int j=0;j<n;j++) {cout<<mass[i][j]<<' '; if (mass[i][j]<1000) cout<<' '; if (mass[i][j]<100) cout<<' '; if (mass[i][j]<10) cout<<' '; } cout<<"\n"; } getch(); }