Проблем с програма на Borland C++
Здравейте!
От два дни дъщерята се бори с една програмка на С++ и нещо не може да се справи.
Задачата е следната: в двумерен масив да се въведат стойности -1, 0 и 1. Да се създаде и изведе друг масив с 2 стълба, който да съдържа индексите на елементите от първия масив, равни на 0
Ето какво е сътворила по въпроса:
#include<iostream.h>
#include<iomanip.h>
void main ()
{
int x[7][10];
int n,m;
int i,j;
do{
cout<< "Kolko sa redovete? ";
cin>>n;} while (n<=0||n>7);
do{
cout<<"Kolko sa stulbovete?";
cin>>m;} while (m<=0||m>10);
for (i=0;i<=n-1;i++)
for (j=0;j<=m-1;j++) {cout<<
"Milq, vuvejdaite samo stoinosti 1, -1 ili 0 za x["<<
i<<"]["<<j<<"]=";
cin>>x[i][j];
}
for (i=0;i<=n-1;i++)
for (j=0;j<=m-1;j++) {if (x[i][j]==0) cout<<i<<j;
cout<<endl;
}
}
това не е окончателен вид. Проблема е , че когато се опита да я тества се получава следното нещо:
Въвежда си данните и до тук проблемът е никакъв, но когато програмата трябва да покаже резултата прозорецът просто се затваря и не излиза съобщение за грешка.....
Молбата ми е, ако може някой разбиращ да погледне дали програмката и е вярна или Борланда е бъгав .
Предварително благодаря!
Re:Проблем с програма на Borland C++
Не бих казал, че Borland ми е силата, но на пръв поглед ми правят впечатление две неща:
1. Присвояват се въведените стойности на x[j], а трябва да се присвояват на x[i][j]. Същото и при проверката за извеждането.
2. Нормално е, като приключи изпълнението, да се затвори прозореца. Пусни си я в предварително отворен прозорец. А може би не вади нищо поради причините, описани в т.1
Успех!
Код:
//Егати теслата! x[i] го разбира като начало на italic и от там малко объркване настава :)
Затова код се пише така, както е това допълнение!
Все пак виж т.2
Re:Проблем с програма на Borland C++
1.Масивът е двумерен, а тя въвежда стойност като едномерен - x[j].Според мен трябва да е x[i,j].
Код:
"Milq, vuvejdaite samo stoinosti 1, -1 ili 0 za x["<<
i<<"]["<<j<<"]=";
cin>>x[i,j];
2.Мисля , че тя се е опитала да въведе масива по редове.
3.При проверката също ползва индекс като за едномерен масив, а трябва да бъде като за двумерен, тоест {if (x[i,j]==0) cout<<i<<j;
Код:
for (i=0;i<=n-1;i++)
for (j=0;j<=m-1;j++) {if (x[i,j]==0) cout<<i<<j;
cout<<endl;
}
}
Re:Проблем с програма на Borland C++
Не, бе, човек!
Код:
Написано е x[i][j], но понеже [i] е указател за начало на italic и форумът не го показва.
Re:Проблем с програма на Borland C++
Щерката : Това дето го казвате е така... явно е станала грешка при копирането на програмата, за което много извинете. Проблема беше, че ми затваря прозореца като приключи програмата. Това се оправя с един cin>> в main преди }, но си разбрах грешката :) Обещавам утре когато донапиша програмата да ви я покажа в завършен вид. Благодаря за бързите отговори!
Re:Проблем с програма на Borland C++
Хора, разберете!
Особено щерката, щом пише програми!
Програмата е копирана правилно. Форумните програми, каквато е и SMF, имат специални кодове, за да изобразявате шарен, уголемен, наклонен и подобни красоти на шрифта.
Код:
Когато се напише [i], което в програмата е индекс на x,
форумната програма го разбира като указател да започне да изобразява текста italic
и не визуализира това указание.
За да се избегне това, се пишат такива неща с друг такъв специален код (както е написан този абзац),
който не прави никакви преобразувания,
а визуализира всичко едно към едно.
Знам, че е offtopic, но не се сдържах.