1

Тема: допоможіть зробити задачу

Дано цілочисельну матрицю розміру M × N. Знайти номер першого з її стовпців, що містять тільки непарні числа. Якщо таких стовпців немає, то вивести 0.

#include <vcl.h>
#pragma hdrstop

#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
int x,y;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
  : TForm(Owner)
{
}
//---------------------------------------------------------------------------

void __fastcall TForm1::BitBtn1Click(TObject *Sender)
{

x=StrToInt(Edit1->Text);
y=StrToInt(Edit2->Text);
StringGrid1->ColCount=x;
StringGrid1->RowCount=y;

for(int i=0; i<x;i++)
 for(int j=0;j<y;j++)
    StringGrid1->Cells[i][j]=rand();

}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
   exit(1);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
int fg=0, k=0;

for(int i=0; i<x;i++)
 {
 for(int j=0;j<y;j++)
  {
   if (StringGrid1->Cells[i+1][j]% 2 == 0)
    {
    fg++;
    break;
    }
   }
    if(fg==0)k++;

  }
   Edit3->Text=k;
}

2

Re: допоможіть зробити задачу

А чим вам цей код не догодив?

3

Re: допоможіть зробити задачу

Прихований текст
nazzzario написав:

Дано цілочисельну матрицю розміру M × N. Знайти номер першого з її стовпців, що містять тільки непарні числа. Якщо таких стовпців немає, то вивести 0.

#include <vcl.h>
#pragma hdrstop

#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
int x,y;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
  : TForm(Owner)
{
}
//---------------------------------------------------------------------------

void __fastcall TForm1::BitBtn1Click(TObject *Sender)
{

x=StrToInt(Edit1->Text);
y=StrToInt(Edit2->Text);
StringGrid1->ColCount=x;
StringGrid1->RowCount=y;

for(int i=0; i<x;i++)
 for(int j=0;j<y;j++)
    StringGrid1->Cells[i][j]=rand();

}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
   exit(1);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
int fg=0, k=0;

for(int i=0; i<x;i++)
 {
 for(int j=0;j<y;j++)
  {
   if (StringGrid1->Cells[i+1][j]% 2 == 0)
    {
    fg++;
    break;
    }
   }
    if(fg==0)k++;

  }
   Edit3->Text=k;
}

А навіщо так складно ?

4

Re: допоможіть зробити задачу

Ок, переглянув.

StringGrid1->Cells[i+1][j]% 2 == 0

ось тут ви намагаєтеся знайти залишок від ділення рядка на 2. Правильно так:

StrToInt(StringGrid1->Cells[i+1][j])% 2 == 0

Я міг би значно більше сказати про помилки в цьому коді, але оскільки ви вирішили зекономити собі час і не написали, де виникає помилка (а вам це пише компілятор), і я був вимушений витрачати свій час на це - то я не буду витрачати свій час на інші проблеми. Ви задоволені?

Подякували: #Sparta1