C/C++

  • Креатор на темата Креатор на темата Драган
  • Време на започнување Време на започнување
Ми треба листа со C++ команди и нивното значење. Моментално знам неколку но ми стана досадно да ги комбинирам истите правејќи глупи програми :blabla: Сакам да научам нешто ново.
А што знаеш и што сакаш да научиш?
 
А што знаеш и што сакаш да научиш?
Па знам навистина малку, онака знам да напишам 3-4 реда математички функции со неколку променливи и тоа :(
Сакам да научам нешто кое е за некој степен посложено од ова бидејќи јас сум сепак почетник еве ти предложи нешто :)
 
Ми треба листа со C++ команди и нивното значење. Моментално знам неколку но ми стана досадно да ги комбинирам истите правејќи глупи програми :blabla: Сакам да научам нешто ново.
Стисни ctrl+space во компајлерот и ќе добиеш листа на сите можни команди.
 
First post :)))
Дали некој би можел да ми помогне во врска со пресметка на сумата на членовите на главната дијагонала во матрица во C++. Благодарам за помошта :)))
 
First post :)))
Дали некој би можел да ми помогне во врска со пресметка на сумата на членовите на главната дијагонала во матрица во C++. Благодарам за помошта :)))
Изволте
Код:
#include <iostream>
#define max 20
using namespace std;

int main()
{
    int matrica[max][max];
    int n,m,j,i,total;
    cout<<"vnesi gi dimenziite na matricata"<<endl;
    cin>>n>>m;
    cout<<"popolni ja matricata"<<endl;
    for (i=0;i<n;i++)
    for (j=0;j<m;j++)
    {
    cin>>matrica[i][j];
}
total=0;
    for (i=0;i<n;)
    for (j=0;j<m;) {
    
    total=total+matrica[i++][j++];
}   
     cout<<total<<endl;
     system ("pause");
     return 0;
}
 
Чуден код... ја би ставил услов
Код:
if(i==j)
бидејќи индексите на членовите од главната дијагонала се еднакви...
 
Не ти треба двојна петља.

Значи:

Код:
int suma = 0;
for(int i = 0; i < n; i++) {
    suma += matrica[i][i];
}

Вака добиваш линеарна наместо квадратна сложеност.

Друго, ти треба една димензија, не две, зашто матрицата мора да биде квадратна
 
Се пишува број на пример 75467. Бараниот резултат е да ги испечати броевите со зборови. седум пет четири... Некоја идеја како да го направам ова со switch?
Пробав со внесување на број, а потоа за секој број посебен case но очигледно дека не е така :)
 
Се пишува број на пример 75467. Бараниот резултат е да ги испечати броевите со зборови. седум пет четири... Некоја идеја како да го направам ова со switch?
Пробав со внесување на број, а потоа за секој број посебен case но очигледно дека не е така :)
А да пробаш да ги одделуваш цифрите цифра по цифра, да си ги сместуваш во помошни променливи, и после тоа да ти печати со зборови?

P.S. Интересна идеја Petkovsky.
 
Не ти треба двојна петља.

Значи:

Код:
int suma = 0;
for(int i = 0; i < n; i++) {
    suma += matrica[i][i];
}

Вака добиваш линеарна наместо квадратна сложеност.

Друго, ти треба една димензија, не две, зашто матрицата мора да биде квадратна

Чуден код... ја би ставил услов
Код:
if(i==j)
бидејќи индексите на членовите од главната дијагонала се еднакви...

Чудно ви е дека бројачот се апдејтира во индексите на матрицата? Па добро една задача има милион начини како да се реши. На тој начин можеш многу манипулации да направиш во матрицата.

Еве на пример направив и збирот на споредната дијагонала, друг начин за споредната дијагонала бар сега во моментот не ми текнува.

Код:
total=0;
    for (i=n-1;i>=0;)
    for (j=0;j<m;) {
    
    total=total+matrica[i--][j++];
}
 
Се пишува број на пример 75467. Бараниот резултат е да ги испечати броевите со зборови. седум пет четири... Некоја идеја како да го направам ова со switch?
Пробав со внесување на број, а потоа за секој број посебен case но очигледно дека не е така :)
Најди го спротивниот број на внесениот број, испечати ги цифрите една по една, напрај switch за секоја цифра од 0 до 9 и во case-от стај да ти ја испечати со зборови.
 
А да пробаш да ги одделуваш цифрите цифра по цифра, да си ги сместуваш во помошни променливи, и после тоа да ти печати со зборови?

P.S. Интересна идеја Petkovsky.

Код:
#include <iostream>
using namespace std;

int main ()
{

	int a;
	int n,e,d,t,c,p,s,ss,o,dd;
	int i;

	cout<<"Vnesi broj: ";
	cin>>n;


	if (o=0)
	i=0;
	if (e=1)
	i=1;
	if(d=2)
	i=2;
	if(t=3)
	i=3;
	if(c=4)
	i=4;
	if(p=5)
	i=5;
	if(s=6)
	i=6;
	if(ss=7)
	i=7;
	if(o==8)
	i=8;
	if(dd=9)
	i=9;

	switch (i) {

	case 1: cout<<"eden";
		break;
	case 2: cout<<"dva";
		break;
	case 3: cout<<"tri";
		break;
	case 4: cout<<"chetiri";
		break;

	}

	system ("pause");
	return 0;

}

Доколку мислеше на ова не работи :( :) :)
 
Доколку мислеше на ова не работи :( :) :)

Пробај со спротивен број...

sprotiven=0;
While(broj>0){
cifra=broj%10;
sprotiven=10*sprotiven+cifra;
broj/=10;
}
потоа ги одделуваш цифрите на спротивниот број.
while (sprotiven>0)
{
cifra=sprotiven%10;
switch (cifra)
{
case 1: cout<<"eden"; break;
и така за сите од 0 до 9...
}
sprotiven/=10;
}

И тоа би требало да биде се.
 
LOL! Ова воопшто не е код. Прва грешка, за да нешто споредуваш, ти треба операторот ==, бидејќи со = само доделуваш вредност. Второ, ти само си декларирал променливи, и после им ја проверуваш вредноста, ништо не си направил со нив. Како што пишаа претходно, преврти го бројот, проверувај цифра по цифра за секоја посебно (ова би требало со while), или оддели ги цифрите, па потоа со case печати.
 

Kajgana Shop

Back
На врв Bottom