C/C++

Член од
25 јули 2015
Мислења
243
Поени од реакции
95
Да се напише програма која даден цел број ќе го транформира така што нулите ќе ги смести како најмалку значајни цифри во бројот. На екран да се отпечати новодобиениот број.
Пример: 10220340 ------12234000

Помош некој?
 

Amaterasu

123123113
Член од
17 април 2012
Мислења
1.143
Поени од реакции
1.092
Да се напише програма која даден цел број ќе го транформира така што нулите ќе ги смести како најмалку значајни цифри во бројот. На екран да се отпечати новодобиениот број.
Пример: 10220340 ------12234000

Помош некој?
Пробај да изброиш колку нули има бројот. На пример, 10230450 има три нули. Сега избриши си ги сите нули од бројот. Треба да го добиеш бројот 12345. Сега додади три нули на крајот.
За вадење на цифри од број, прво правиш модул(%) 10 на бројот, со што ја добиваш последната цифра. Потоа го делиш бројот со 10 и повторно го повторуваш истото.
Пример: 12345
12345%10 = 5.
12345/ 10 = 1234
1234 % 10 = 4
1234 / 10 = 123
...
 
Член од
21 март 2014
Мислења
512
Поени од реакции
375
Пробај да изброиш колку нули има бројот. На пример, 10230450 има три нули. Сега избриши си ги сите нули од бројот. Треба да го добиеш бројот 12345. Сега додади три нули на крајот.
За вадење на цифри од број, прво правиш модул(%) 10 на бројот, со што ја добиваш последната цифра. Потоа го делиш бројот со 10 и повторно го повторуваш истото.
Пример: 12345
12345%10 = 5.
12345/ 10 = 1234
1234 % 10 = 4
1234 / 10 = 123
...
Нема да му биде сложено ако има уште поголеми броеви ? Јас мислам со стринг да се проба ?
 

Amaterasu

123123113
Член од
17 април 2012
Мислења
1.143
Поени од реакции
1.092
Нема да му биде сложено ако има уште поголеми броеви ? Јас мислам со стринг да се проба ?
Зошто би било сложено ? Решението со string би имало иста комплексност. Треба да да ја изминеш низата/бројот и да ги избришеш сите нули. Истото го правиш и тука, го изминуваш бројот и ги бришеш нулите. Откако ќе ги избришеш нулите само го додаваш бројот на нули на крај.
 
Член од
21 март 2014
Мислења
512
Поени од реакции
375
Зошто би било сложено ? Решението со string би имало иста комплексност. Треба да да ја изминеш низата/бројот и да ги избришеш сите нули. Истото го правиш и тука, го изминуваш бројот и ги бришеш нулите. Откако ќе ги избришеш нулите само го додаваш бројот на нули на крај.
Не сум доволно стручен па незнам многу само знам за стринг дека може бит оператор нешто како беше и на пример ако тој е 0 го носи последен во низата и на крај го печати бројот. Ако некој знае нешто повеќе може и да напише ..
 

Amaterasu

123123113
Член од
17 април 2012
Мислења
1.143
Поени од реакции
1.092
Не сум доволно стручен па незнам многу само знам за стринг дека може бит оператор нешто како беше и на пример ако тој е 0 го носи последен во низата и на крај го печати бројот. Ако некој знае нешто повеќе може и да напише ..
Според прашањето кое е поставено погоре, јас претпоставив дека членот сака да решава со број(int), бидејќи задачата е типична почетничка задача. Моја претпоставка е дека тој никогаш не користел стринг, а па уште помалце знае за готови функции кои ги поседува таа библиотека. Искрено не сум користел таква функција каква што спомнуваш, но бит операторите работат врз бинарни броеви (од таму и произлегува нивното име) а не врз декадни броеви какви што членот користи во задачата. Поради тоа постои разлика помеѓу бројот 101 во декаден систем и бројот 101 во бинарен систем (5 во декаден), па и нулите имаат различно значење во овие два системи.
 
Член од
10 ноември 2012
Мислења
21
Поени од реакции
4
Да се напише програма која даден цел број ќе го транформира така што нулите ќе ги смести како најмалку значајни цифри во бројот. На екран да се отпечати новодобиениот број.
Пример: 10220340 ------12234000

Помош некој?
Идејата на задачата е да го изминеш цел број цифра по цифра, доколку цифрата не е 0 да ја додаваш на почетокот од некој новоформиран број, а доколку е 0 само да го броиш бројот на нули, и на крај да помножиш со 10 на степен бројот на нулите.

Нека n е оригиналниот број, brNuli е бројот на нули (иницијализиран на 0 на почеток), novBroj е новиот број, иницијализиран на 0 на почеток, и stepen нека е бројот на моментални цифри во новиот број (иницијализиран на 1 на почеток).

Псевдокод:
while n != 0:
cifra <- n mod 10
if cifra != 0:
novBroj <- novBroj + stepen * cifra
stepen <- stepen * 10
else:
brNuli <- brNuli + 1
n <- n div 10
end while
novBroj <- novBroj * pow(10, brNuli)

Мислам дека не е проблем да се претвори во C код одовде. Ако има нешто нејасно со кодот прашај.

Време им е на електро да ги сменат задачиве ПиА1, 3 години врти оваа :vrtioci:
 
Член од
25 јули 2015
Мислења
243
Поени од реакции
95
Идејата на задачата е да го изминеш цел број цифра по цифра, доколку цифрата не е 0 да ја додаваш на почетокот од некој новоформиран број, а доколку е 0 само да го броиш бројот на нули, и на крај да помножиш со 10 на степен бројот на нулите.

Нека n е оригиналниот број, brNuli е бројот на нули (иницијализиран на 0 на почеток), novBroj е новиот број, иницијализиран на 0 на почеток, и stepen нека е бројот на моментални цифри во новиот број (иницијализиран на 1 на почеток).

Псевдокод:
while n != 0:
cifra <- n mod 10
if cifra != 0:
novBroj <- novBroj + stepen * cifra
stepen <- stepen * 10
else:
brNuli <- brNuli + 1
n <- n div 10
end while
novBroj <- novBroj * pow(10, brNuli)

Мислам дека не е проблем да се претвори во C код одовде. Ако има нешто нејасно со кодот прашај.

Време им е на електро да ги сменат задачиве ПиА1, 3 години врти оваа :vrtioci:
фала, работи таман
 
Член од
13 април 2013
Мислења
156
Поени од реакции
30


ако може некој да ми помогне со задачиве ке ви бидам многу благодарен :)
 

Amaterasu

123123113
Член од
17 април 2012
Мислења
1.143
Поени од реакции
1.092


ако може некој да ми помогне со задачиве ке ви бидам многу благодарен :)
Многу лошо е да очекуваш дека некој целосно ќе ти ги реши сите задачи тука. Дури и некој да ти ги реши, нема никакво добро да ти направи. Ако сакаш да научиш програмирање, тогаш ќе треба да седнеш и да пробаш да ги решиш. Ќе почнеш, ќе пишуваш до кај што знаеш, ќе заглавиш, па ќе се мачиш едно 5-6 саати па после ќе прашаш за совет. Еве да речеме првата задача. Прво декларирај низа од 13 елементи. После пробај да ја исполниш низата со елементи. Потоа пробај да ги испечатиш елементите, да видиш дали добро си ги внел. Кога ќе го направиш тоа, во еден фор циклус изминувај ја низата и проверувај дали моменталниот елемент е тој што го бараш. Ако е, тогаш break. Ако овие работи што ти ги кажав ти се нејасни, тогаш прочитај ја теоријата уште неколку пати па пробај пак да решиш. Уште еднаш ќе кажам, програмирање не се учи од туѓи кодови, треба да седнеш и да работиш, да изградиш свој стил.
Btw од кој факултет се овие задачи?
 
Член од
1 октомври 2015
Мислења
13
Поени од реакции
1
Pisuvav na mob ako ima greska kazi ne mi se provereni.
Zad
1.
int main()
{
int niza[100];
int i,n,a;

printf("vnesi golemina na nizata");
scanf("%d",&n);
printf("vnesi elementi na nizata");
for(i=0;i<n;i++)
scanf("%d",&niza);
printf("vnesi broj za proverka");
scanf("%d",&a);

for(i=0;i<n;i++)
if(a==niza)
{ printf("brojot a e clen na nizata"); break;}
else
printf("brojot a ne e clen na nizata");

return o;
}

2.
Koristi bubble sort
3.Vo funkcijata funk potocno vo while cif ja zema poslednata cifra od brojot n i ja sobira vo sum, pa posle brojot n se krati.
int funk(int n)
{
int br=0;
int cif,sum=0;
while(n>0)
{cif=n%10;
++br;
sum=sum+cif;
n=n/10;
}
printf("sumata na cifrite e %d",sum);
printf("brojot ima %d cifri",br);

}
int main()
{
int n;

printf("vnesi cel broj");
scanf("%d",&n);
funk( n) ;

return o;
}

4.
Ovoj cod pravi razlika pomegu golema i mala bukva. "oto"e palindrom ama "Oto" ne e palindrom.
int palindrom(char *str)
{
int i,len;
len=strlen(str);

for(i=0;i<len/2;i++)
if(str!=str[len-1-i]) return 0;
else return 1;
}

int main()
{
char str[100];
printf("Vnesi niza\n");
gets(str);

if(palindrom(str)) printf("Nizata e palindrom");
else printf("Nizata ne e palindrom");

return 0;
}
 
Член од
13 април 2013
Мислења
156
Поени од реакции
30
Pisuvav na mob ako ima greska kazi ne mi se provereni.
Zad
1.
int main()
{
int niza[100];
int i,n,a;

printf("vnesi golemina na nizata");
scanf("%d",&n);
printf("vnesi elementi na nizata");
for(i=0;i<n;i++)
scanf("%d",&niza);
printf("vnesi broj za proverka");
scanf("%d",&a);

for(i=0;i<n;i++)
if(a==niza)
{ printf("brojot a e clen na nizata"); break;}
else
printf("brojot a ne e clen na nizata");

return o;
}

2.
Koristi bubble sort
3.Vo funkcijata funk potocno vo while cif ja zema poslednata cifra od brojot n i ja sobira vo sum, pa posle brojot n se krati.
int funk(int n)
{
int br=0;
int cif,sum=0;
while(n>0)
{cif=n%10;
++br;
sum=sum+cif;
n=n/10;
}
printf("sumata na cifrite e %d",sum);
printf("brojot ima %d cifri",br);

}
int main()
{
int n;

printf("vnesi cel broj");
scanf("%d",&n);
funk( n) ;

return o;
}

4.
Ovoj cod pravi razlika pomegu golema i mala bukva. "oto"e palindrom ama "Oto" ne e palindrom.
int palindrom(char *str)
{
int i,len;
len=strlen(str);

for(i=0;i<len/2;i++)
if(str!=str[len-1-i]) return 0;
else return 1;
}

int main()
{
char str[100];
printf("Vnesi niza\n");
gets(str);

if(palindrom(str)) printf("Nizata e palindrom");
else printf("Nizata ne e palindrom");

return 0;
}
фала многу о//
 
Член од
21 март 2014
Мислења
512
Поени од реакции
375
Код:
#include <iostream>
using namespace std;
int main(){
int x,ve,br=0,m=0,p;
cin >> x ;
for(int i=0;i<x;i++){
    cin >> ve;
   if(ve!=2){
        br++ ;
        }
        p=br;
          if(ve==2){
                m=br;
            br=0;
    }
}
if(m>p)
cout << m ;
else
    cout << p ;
return 0;
}
Помош ми дава 11/20 не знам што не работи во програма може некој да помогне ?
http://mendo.mk/Task.do?id=130
 
Член од
10 ноември 2012
Мислења
21
Поени од реакции
4
Код:
#include <iostream>
using namespace std;
int main(){
int x,ve,br=0,m=0,p;
cin >> x ;
for(int i=0;i<x;i++){
    cin >> ve;
   if(ve!=2){
        br++ ;
        }
        p=br;
          if(ve==2){
                m=br;
            br=0;
    }
}
if(m>p)
cout << m ;
else
    cout << p ;
return 0;
}
Помош ми дава 11/20 не знам што не работи во програма може некој да помогне ?
http://mendo.mk/Task.do?id=130
Прво, гледај да ти е посреден кодот, многу ќе ти помогне. Второ, користи низи.
 
Член од
10 ноември 2012
Мислења
21
Поени од реакции
4
Pisuvav na mob ako ima greska kazi ne mi se provereni.
Zad
1.
int main()
{
int niza[100];
int i,n,a;

printf("vnesi golemina na nizata");
scanf("%d",&n);
printf("vnesi elementi na nizata");
for(i=0;i<n;i++)
scanf("%d",&niza);
printf("vnesi broj za proverka");
scanf("%d",&a);

for(i=0;i<n;i++)
if(a==niza)
{ printf("brojot a e clen na nizata"); break;}
else
printf("brojot a ne e clen na nizata");

return o;
}

2.
Koristi bubble sort
3.Vo funkcijata funk potocno vo while cif ja zema poslednata cifra od brojot n i ja sobira vo sum, pa posle brojot n se krati.
int funk(int n)
{
int br=0;
int cif,sum=0;
while(n>0)
{cif=n%10;
++br;
sum=sum+cif;
n=n/10;
}
printf("sumata na cifrite e %d",sum);
printf("brojot ima %d cifri",br);

}
int main()
{
int n;

printf("vnesi cel broj");
scanf("%d",&n);
funk( n) ;

return o;
}

4.
Ovoj cod pravi razlika pomegu golema i mala bukva. "oto"e palindrom ama "Oto" ne e palindrom.
int palindrom(char *str)
{
int i,len;
len=strlen(str);

for(i=0;i<len/2;i++)
if(str!=str[len-1-i]) return 0;
else return 1;
}

int main()
{
char str[100];
printf("Vnesi niza\n");
gets(str);

if(palindrom(str)) printf("Nizata e palindrom");
else printf("Nizata ne e palindrom");

return 0;
}
Имаш грешки, и логички и синтаксички.
 

Kajgana Shop

На врв Bottom