Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C++ Builder > Помогите выбивает ошибку(


Автор: Darina99 21.5.2016, 12:00
#pragma argsused
 #include <iostream.h>
#include <windows.h>
#include<conio.h>
#include<stdio.h>
int x[100][100],y[100][100],i,j,n1,m1,n2,m2,z[100][100];
void cret(void)
{
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    printf("\nVvedit rozmir\n");
scanf("d",&n1,&m1);
    randomize();
for(i=0;i<n1;i++)
{
for(j=0;j<m1;j++)
{
x[i][j]=random(10);

    printf("%d",x[i][j]);
      }
cout<<endl;
}
  printf("\nVvedit rozmir\n");
scanf("%i%i", &n2, m2);
   randomize();
for(i=0;i<n2;i++)
{
for(j=0;j<m2;j++)
{
y[i][j]=random(10);
printf("%d",y[i][j]);
}
cout<<endl;
}
getch();
}


 void sum(void)
{
if (n1!=n2 || m1!=m2)
{
printf("\nМатриці неоднакові\n");
getch();
}
else
{
for(i=0;i<n1;i++)
for(j=0;j<m1;j++)
z[i][j]=x[i][j]+y[i][j];
cout<<"Summa \n";
for(i=0;i<n1;i++)
{
for(j=0;j<m1;j++)
cout<<z[i][j]<<" ";
cout<<endl;
}
getch();
}
}

 void mnoh(void)
{
if (m1!=n2)
{
printf("Не вірно\n");
getch();
}
else
{
int k,s;
for(i=0;i<m2;i++)
for(j=0;j<n1;j++)
{
s=0;
for(k=0;k<n2;k++)
s+=x[j][k]*y[k][i];
z[j][i]=s;
}
    printf("Результат\n");
for(i=0;i<n1;i++)
{
for(j=0;j<m2;j++)
cout<<z[i][j]<<" ";
cout<<endl;
}
getch();
}
}

 void poriv(void)
{
if (n1!=n2 || m1!=m2)
{
printf("Не вірно\n");
getch();
}
else
{int k=0;
for (i=0; i<n1; i++)
for (j=0;j<m1; j++)
if (x[i][j]!=y[i][j])
{
k=1;
break;
}
(k)?cout<<"Ne rivni":cout<<"Rivni";
getch();
}
}

void watch(void)
{
      printf("матриця x\n");
for(i=0;i<n1;i++)
{
for(j=0;j<m1;j++)
cout<<x[i][j]<<" ";
cout<<endl;
}
printf(" Матриця yes\n");
for(i=0;i<n2;i++)
{
for(j=0;j<m2;j++)
cout<<y[i][j]<<" ";
cout<<endl;
}
getch();
}
void main(void)
{
int t;
{
while(1)
{
clrscr();
cout<<"\t Golovne menu \n";
cout<<" \n1 Matrici z vupadcovuh chisel\n2 Dodavanya matric\n3 Mnohenya matric\n4 Porivnjnj matric\n5 Pereglyad matruci \n6 Exit\n\n";
cin>>t;
 switch (t)
 {
case 1:{cret();break;}
case 2:{sum();break;}
case 3:{mnoh();break;}
case 4:{poriv();break;}
case 5:{watch();break;}
case 6:exit(1);
while(1);
getch();
}
}
}
}
 smile  smile  smile  smile  smile  smile  smile 






Автор: jsharp36 21.5.2016, 21:22
Интересно, как вы хотите, чтобы вам кто-то помог?
Не описали задачу, не написали, что за ошибку выдает и где.

Код без отступов, смесь украинского с украинским на латинице. Нет, я не плохо к этому языку отношусь, я сам украинец, за Украину и был на майдане. И украинский язык родной.
Но всё же если ресурс русский, то хотя бы задачу надо объяснить, потому что такие предложения не все прочитают.

Что за среда используется? Visual Studio?

Этот ответ добавлен с нового Винграда - http://ru.vingrad.com/Pomogite-vybivayet-oshibku(-id57402456ae2015846d8b4567#findElement_E7045_5740a757ae20158e7b0d6a7e_0

Автор: feodorv 22.5.2016, 16:12
Цитата(Darina99 @  21.5.2016,  12:00 Найти цитируемый пост)
Переделала на принф и сканф

Откуда? 

А со сканфами беда просто...
Цитата(Darina99 @  21.5.2016,  12:00 Найти цитируемый пост)
scanf("%d%d",&n1,&m1);

Цитата(Darina99 @  21.5.2016,  12:00 Найти цитируемый пост)
scanf("%i%i", &n2, &m2);
И %i лучше заменить на %d.

И в конце форматной строки для принтфа лучше добавить \n (перевод строки), а то все данные напечатаются в одну строчку впритык друг к другу.

И после каждого сканфа лучше всего выдать введённые значения на печать в отладочных целях, чтобы убедиться, что вводимые числа получились правильными.

Автор: baldman88 22.5.2016, 22:22
А то что, в main while и getch в теле switch, это так и задуманно? Тем более while(1).

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)