Подсчитайте количество строк заданной целочисленной матрицы А(5,5), являющихся перестановкой чисел   1, 2, …, 5 — Pascal(Паскаль)/C++(Си)

Язык программирования Pascal

var a:array[1..100,1..100] of integer;
i,j,flag,n,k:byte;
begin
randomize;
k:=0;
Writeln('vvedite n'); readln(n);
for i:=1 to n do
begin
for j:=1 to n do
begin
a[i,j]:=random(100)+1;
write(a[i,j],' ');
end;
Writeln;
end;
for i:=1 to n do
begin
flag:=0;
for j:=1 to n do
begin
if a[i,j]=a[i,j+1]
then flag:=1;
end;
if flag=1
then k:=k+1;
end;
Writeln(k);
readln;
end.

Язык программирования C++

#include <stdio.h>
#include <iostream>
#include <fstream>
#include <cstdio>
using namespace std;
 
 
int main()
 
{
    setlocale(LC_CTYPE, ".OCP");                  //Настройка поддержки русских символов
 
    wcout << L"\tЗадание: Написать программу, подсчитывающую количество"
    << L"\n\tрядков заданоё матрицы n*n чисел, в которых элементы не повторяются."
    << L"\n\tМатрица считывается с исходного файла, результат работы программы"
    << L"\n\tзаписывается в выходящий файл."
    << L"\n\tПрограмма формирует оба эти файла."
    << endl << endl << endl;
 
 
    const int sizei=5,sizej=5;
    int mass[sizei][sizej] = {1,2,3,4,5,
                      2,4,5,2,1,
                      5,0,1,3,5,
                      1,1,2,5,3,
                      1,2,3,4,5};
 
    FILE* fp = fopen("my_file.txt","w+");
    if(fp != NULL) 
    {
    for (int i=0; i<5; i++)
    {
       for (int j=0; j<5; j++)
    {
    fprintf(fp,"%i",mass[i][j]);     //запись матрицы(массива)
    fprintf(fp,"%c",' ');
    } 
    fprintf(fp,"%c",'\n');
    }
    
    }
    else 
        printf("Невозможно открыть файл на запись.\n");
    
   ifstream fin;
   fin.open ("my_file.txt");
 
   if ( !fin ) exit( 1 );
    
   for ( int i = 0; i < 5; i++ )
   {
      for ( int j = 0; j < 5; j++ )
      {
         fin >> mass[i][j];
      }
   }
 
   for ( int i = 0; i < 5; i++ )
   {
       for ( int j = 0; j < 5; j++ )
       {
           cout << mass[i][j] <<" ";
       }
   cout<<endl;
   }
   
   int flag,k=0;
   
   for (int i=0; i < sizei; i++)
   {
     flag=0;
      for (int j=0; j < sizej; j++)
        {
       if (mass[i][j] == mass[i][j+1]) 
    flag=1;
    
      }
         if(flag==1)
 
          k=k+1;
   }
   cout << k <<endl;
 
    FILE* fl = fopen("my_file2.txt","w+");
    if(fl != NULL) 
    {
    fprintf(fl,"%i",k);     //запись матрицы(массива)
    }
    else 
        printf("Невозможно открыть файл на запись.\n");
 
    fclose(fp);
    fclose(fl); 
}

Leave a Comment

9 + 1 =