Пробај да изброиш колку нули има бројот. На пример, 10230450 има три нули. Сега избриши си ги сите нули од бројот. Треба да го добиеш бројот 12345. Сега додади три нули на крајот.Да се напише програма која даден цел број ќе го транформира така што нулите ќе ги смести како најмалку значајни цифри во бројот. На екран да се отпечати новодобиениот број.
Пример: 10220340 ------12234000
Помош некој?
Нема да му биде сложено ако има уште поголеми броеви ? Јас мислам со стринг да се проба ?Пробај да изброиш колку нули има бројот. На пример, 10230450 има три нули. Сега избриши си ги сите нули од бројот. Треба да го добиеш бројот 12345. Сега додади три нули на крајот.
За вадење на цифри од број, прво правиш модул(%) 10 на бројот, со што ја добиваш последната цифра. Потоа го делиш бројот со 10 и повторно го повторуваш истото.
Пример: 12345
12345%10 = 5.
12345/ 10 = 1234
1234 % 10 = 4
1234 / 10 = 123
...
Зошто би било сложено ? Решението со string би имало иста комплексност. Треба да да ја изминеш низата/бројот и да ги избришеш сите нули. Истото го правиш и тука, го изминуваш бројот и ги бришеш нулите. Откако ќе ги избришеш нулите само го додаваш бројот на нули на крај.Нема да му биде сложено ако има уште поголеми броеви ? Јас мислам со стринг да се проба ?
Не сум доволно стручен па незнам многу само знам за стринг дека може бит оператор нешто како беше и на пример ако тој е 0 го носи последен во низата и на крај го печати бројот. Ако некој знае нешто повеќе може и да напише ..Зошто би било сложено ? Решението со string би имало иста комплексност. Треба да да ја изминеш низата/бројот и да ги избришеш сите нули. Истото го правиш и тука, го изминуваш бројот и ги бришеш нулите. Откако ќе ги избришеш нулите само го додаваш бројот на нули на крај.
Според прашањето кое е поставено погоре, јас претпоставив дека членот сака да решава со број(int), бидејќи задачата е типична почетничка задача. Моја претпоставка е дека тој никогаш не користел стринг, а па уште помалце знае за готови функции кои ги поседува таа библиотека. Искрено не сум користел таква функција каква што спомнуваш, но бит операторите работат врз бинарни броеви (од таму и произлегува нивното име) а не врз декадни броеви какви што членот користи во задачата. Поради тоа постои разлика помеѓу бројот 101 во декаден систем и бројот 101 во бинарен систем (5 во декаден), па и нулите имаат различно значење во овие два системи.Не сум доволно стручен па незнам многу само знам за стринг дека може бит оператор нешто како беше и на пример ако тој е 0 го носи последен во низата и на крај го печати бројот. Ако некој знае нешто повеќе може и да напише ..
Идејата на задачата е да го изминеш цел број цифра по цифра, доколку цифрата не е 0 да ја додаваш на почетокот од некој новоформиран број, а доколку е 0 само да го броиш бројот на нули, и на крај да помножиш со 10 на степен бројот на нулите.Да се напише програма која даден цел број ќе го транформира така што нулите ќе ги смести како најмалку значајни цифри во бројот. На екран да се отпечати новодобиениот број.
Пример: 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 години врти оваа
Многу лошо е да очекуваш дека некој целосно ќе ти ги реши сите задачи тука. Дури и некој да ти ги реши, нема никакво добро да ти направи. Ако сакаш да научиш програмирање, тогаш ќе треба да седнеш и да пробаш да ги решиш. Ќе почнеш, ќе пишуваш до кај што знаеш, ќе заглавиш, па ќе се мачиш едно 5-6 саати па после ќе прашаш за совет. Еве да речеме првата задача. Прво декларирај низа од 13 елементи. После пробај да ја исполниш низата со елементи. Потоа пробај да ги испечатиш елементите, да видиш дали добро си ги внел. Кога ќе го направиш тоа, во еден фор циклус изминувај ја низата и проверувај дали моменталниот елемент е тој што го бараш. Ако е, тогаш break. Ако овие работи што ти ги кажав ти се нејасни, тогаш прочитај ја теоријата уште неколку пати па пробај пак да решиш. Уште еднаш ќе кажам, програмирање не се учи од туѓи кодови, треба да седнеш и да работиш, да изградиш свој стил.
ако може некој да ми помогне со задачиве ке ви бидам многу благодарен
фала многу о//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;
}
#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 не знам што не работи во програма може некој да помогне ?Код:#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; }
http://mendo.mk/Task.do?id=130
Имаш грешки, и логички и синтаксички.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;
}