C/C++

M

Mr.InF3ction

Гостин
^ Ти треба еден бројач што ќе брои колку делители има тој број што го испитуваш( таму кај условот ќе ставиш бројач). после кога ќе заврши тоа ќе ставиш еден услов ако бројот на делители е поголем од max(променлива што од старт е 1 )тогаш во max зачувуваш тоа што има во бројачот, и во една променлива индексот на тој елемент..после условот бројачот го ресетираш и тоа е...на крај ќе го печатиш елементот со тој индекс што си зачувал во некоја променлива.
Пробај сам да решиш па ако закочиш ќе помогнеме :)
 
Член од
12 јуни 2010
Мислења
200
Поени од реакции
61
^ Ти треба еден бројач што ќе брои колку делители има тој број што го испитуваш( таму кај условот ќе ставиш бројач). после кога ќе заврши тоа ќе ставиш еден услов ако бројот на делители е поголем од max(променлива што од старт е 1 )тогаш во max зачувуваш тоа што има во бројачот, и во една променлива индексот на тој елемент..после условот бројачот го ресетираш и тоа е...на крај ќе го печатиш елементот со тој индекс што си зачувал во некоја променлива.
Пробај сам да решиш па ако закочиш ќе помогнеме :)

Код:
#include <iostream>
using namespace std;
int main()
{
    int P,K,c=0,max=1;
    cout<<"Na pocetokot se vnesuvaat broevite P i K koisto oznacuvaat pocetok i kraj na opsegot vo kojsto ke se baraat delitelite,pri toa treba da se ispolnuva uslovot (1<=P<=K<=5000, 0<=K-P<=500)"<<endl;
    cout<<"Vnesete go brojot P kojsto oznacuva pocetok na opsegot"<<endl;
    cin>>P;
    cout<<"Vnesete go brojot K kojsto oznacuva kraj na opsegot"<<endl;
    cin>>K;
    for (int i=P ; i<=K ;i++)
    for (int b=1;b<=i;b++)
        {
        if (i%b==0)
        {
        c++; 
        }
        if(c>max)
        max==c;
        }
        cout<<"Brojot kojsto ima najmnogu deliteли vo opsegot od "<<P<<" do "<<K<<" e "<<max<<endl;
        system("pause");
        return(0);
}
Направив нешто ,но на крајот нонстоп ми дава 1,грешката е ваљда у некоја испуштена заграда за да се затвори наредба или слично.....но неможам да ја откријам од преска се тупам.... :tapp:
 
M

Mr.InF3ction

Гостин
Код:
#include <iostream>
using namespace std;
int main()
{
    int P,K,c=0,max=1,broj;
    cout<<"Na pocetokot se vnesuvaat broevite P i K koisto oznacuvaat pocetok i kraj na opsegot vo kojsto ke se baraat delitelite,pri toa treba da se ispolnuva uslovot (1<=P<=K<=5000, 0<=K-P<=500)"<<endl;
    cout<<"Vnesete go brojot P kojsto oznacuva pocetok na opsegot"<<endl;
    cin>>P;
    cout<<"Vnesete go brojot K kojsto oznacuva kraj na opsegot"<<endl;
    cin>>K;
    for (int i=P ; i<=K ;i++){
        for (int b=1;b<i/2;b++)
            if (i%b==0)
                c++;
 
        if(c>max)
        {
            max=c;
            broj=i;
        }
        c=0;
    }
    cout<<"Brojot kojsto ima najmnogu deliteли vo opsegot od "<<P<<" do "<<K<<" e "<<broj<<endl;
    system("pause");
    return(0);
}
Еве то го решението.
1. == е споредување а не доделување..имаш напишано c==max тоа е грешка.
2. Кога броиш нешто сакаш тоа да изброи до крај за тој случај па после да провери дали е поголем од предходните , дали е макс итн. Затоа циклусот каде броиш колку деливи има треба да заврши до крај и после да споредиш со макс.
И кога ќе споредиш вредноста на бројачот го доделуваш на макс, и го памтиш бројот 'i' бидејќи тој број е што ни треба и потоа не заборавај да ресетираш бројач во вакви случаи бидејќи за секоја цифра само ќе се зголемува од таму каде што застанал..па најверојатно секогаш ќе ти ја печати последната цифра од некоја низа итн.
 
Член од
12 јуни 2010
Мислења
200
Поени од реакции
61
многу благодарам за помошта

ке се трудам натаму да не правам вакви грешки
 

КвикСилвер

Модератор
Член од
28 март 2010
Мислења
4.547
Поени од реакции
5.856
Ми треба една вежба во CodeBlocks

Збир на средни цифри треба... Може помош до вечер пошто за утре ми е за испрашување? :(
 
Член од
1 август 2007
Мислења
1.193
Поени од реакции
37
Може некој во Ц да ја напише програмава ?

Да се напише програма која ја проверува и печати аритметичката средина само на непарните броеви поголеми од 50 а помали од 100.
Да се изброи и отпечати колку од внесените броеви не влегле во аритметичката средина поради неисполнетите услови
 
Член од
21 октомври 2011
Мислења
83
Поени од реакции
22
Може некој во Ц да ја напише програмава ?

Да се напише програма која ја проверува и печати аритметичката средина само на непарните броеви поголеми од 50 а помали од 100.
Да се изброи и отпечати колку од внесените броеви не влегле во аритметичката средина поради неисполнетите услови
Може во ц++?
--- надополнето: 9 април 2012 во 21:51 ---
Ми треба една вежба во CodeBlocks

Збир на средни цифри треба... Може помош до вечер пошто за утре ми е за испрашување? :(
Дали сакаш да ја решавам со интови или со стрингови?
 

КвикСилвер

Модератор
Член од
28 март 2010
Мислења
4.547
Поени од реакции
5.856
Може во ц++?
--- надополнето: 9 април 2012 во 21:51 ---

Дали сакаш да ја решавам со интови или со стрингови?

Да ти кажам баш не се разбирам многу... ама мислам дека треба со int main () :)
 
M

Mr.InF3ction

Гостин
Код:
#include <stdio.h>
 
int main()
{
    float suma = 0;
    int site = 0, isp = 0, pom;
    printf("Vnesi niza od broevi: \nVnesi nekoj znak za kraj\n");
    while(scanf("%d", &pom))
    {
        if(( pom > 50 && pom < 100 ) && pom % 2)
        {
            suma += pom;
            isp++;
        }
        site++;
    }
    if(suma==0)
        printf("Aritmeticka sredina: 0");
    else
        printf("\nAritmeticka sredina:  %.2f\n",suma/isp*1.0f);
 
    printf("Vkupno %d od vnesenite broevi ne go ispolnuvaat uslovot",(site-isp));
}
Се надевам другиот член нема да се измачи џабе :icon_lol:

А за таа со збир на средни цифри, мислам дека во средно не учат за низи ..сега за сега.
Едит:
Ај и оваа:
Код:
#include <stdio.h>
 
int main(){
    int suma = 0, broj, pom;
    printf("Vnesi nekoj broj: "); scanf("%d",&broj);
    pom = broj / 10;
    while(pom > 9){
        suma += pom % 10;
        pom /= 10;
    }
    printf("Zbir na sredni cifri:  %d",suma);
}
 

smihajlo

Superposition, Relentless
Член од
11 август 2010
Мислења
3.754
Поени од реакции
4.524
Код:
#include <stdio.h>
 
int main()
{
int n, reverse = 0, temp;
 
printf("Enter a number to check if it is a palindrome or not\n");
scanf("%d",&n);
 
temp = n;
 
while( temp != 0 )
{
reverse = reverse * 10; // 0 ,2*10=20 ,2*10=20 , 0,10,20
reverse = reverse + temp%10; //0+322 mod 10 = 2 ,20+32 mod 10=2 ,20+3 mod 10=3 0+121 mod 10 =1 ,10+12 mod 10=2 ,20+1 mod 10=1
temp = temp/10; // 322/10=32 , 32/10=3 ,0 121/10=12 ,12/10=1 ,0
// temp==0 kraj
}
 
if ( n == reverse )
printf("%d is a palindrome number.\n", n);
else
printf("%d is not a palindrome number.\n", n);
 
return 0;
}


Сам го пишував кодов и работи и се е во ред само имам нешто што не ми е баш јасно.
Кај променливата reverse ако не сум разбрал погрешно кога се пишува нова вредност старата се брише ,а во овој случај ги зема сите 3 вредности(пример коментарот 1,2,1=121)
Дали има врска што е во While па поинаку се однесува?
Ќе бидам благодарен ако ми објасни некој.
 
Член од
21 октомври 2011
Мислења
83
Поени од реакции
22
Ми треба една вежба во CodeBlocks

Збир на средни цифри треба... Може помош до вечер пошто за утре ми е за испрашување? :(
Код:
#include <iostream>

using namespace std;

int main()
{
    cout<<"Vnesi go brojot:"<<endl;
    long long n;
    cin>>n;
    int k=0;
    while(n>0)
    {
          k+=n%10;
          n/=10;
    }
    cout<<"Zbirot na cifrite e: "<<k<<endl;
    return 0;
}
--- надополнето: 10 април 2012 во 09:59 ---
Може некој во Ц да ја напише програмава ?

Да се напише програма која ја проверува и печати аритметичката средина само на непарните броеви поголеми од 50 а помали од 100.
Да се изброи и отпечати колку од внесените броеви не влегле во аритметичката средина поради неисполнетите услови
Код:
#include <iostream>

using namespace std;

int main()
{
    long long n=0,k=0,s=0;
    for(int i=50;i<=100;i++)
    {
      if(i%2==1)
      {
            n+=i;
            s++;
      }
      else k++;
    }
    cout<<"Aritmetickata sredina e: "<<double(n/s)<<endl;
    cout<<"Broj na broevi koi ne vleguvaat vo uslovot: "<<k<<endl;
    return 0;
}
Izvolte
 

КвикСилвер

Модератор
Член од
28 март 2010
Мислења
4.547
Поени од реакции
5.856
Код:
#include <stdio.h>
 
int main()
{
    float suma = 0;
    int site = 0, isp = 0, pom;
    printf("Vnesi niza od broevi: \nVnesi nekoj znak za kraj\n");
    while(scanf("%d", &pom))
    {
        if(( pom > 50 && pom < 100 ) && pom % 2)
        {
            suma += pom;
            isp++;
        }
        site++;
    }
    if(suma==0)
        printf("Aritmeticka sredina: 0");
    else
        printf("\nAritmeticka sredina:  %.2f\n",suma/isp*1.0f);
 
    printf("Vkupno %d od vnesenite broevi ne go ispolnuvaat uslovot",(site-isp));
}
Се надевам другиот член нема да се измачи џабе :icon_lol:

А за таа со збир на средни цифри, мислам дека во средно не учат за низи ..сега за сега.
Едит:
Ај и оваа:
Код:
#include <stdio.h>
 
int main(){
    int suma = 0, broj, pom;
    printf("Vnesi nekoj broj: "); scanf("%d",&broj);
    pom = broj / 10;
    while(pom > 9){
        suma += pom % 10;
        pom /= 10;
    }
    printf("Zbir na sredni cifri:  %d",suma);
}
Учиме за кубови, збирови, низи, квадрати и се остало :(
 
M

Mr.InF3ction

Гостин
Код:
#include <stdio.h>
 
int main()
{
int n, reverse = 0, temp;
 
printf("Enter a number to check if it is a palindrome or not\n");
scanf("%d",&n);
 
temp = n;
 
while( temp != 0 )
{
reverse = reverse * 10; // 0 ,2*10=20 ,2*10=20 , 0,10,20
reverse = reverse + temp%10; //0+322 mod 10 = 2 ,20+32 mod 10=2 ,20+3 mod 10=3 0+121 mod 10 =1 ,10+12 mod 10=2 ,20+1 mod 10=1
temp = temp/10; // 322/10=32 , 32/10=3 ,0 121/10=12 ,12/10=1 ,0
// temp==0 kraj
}
 
if ( n == reverse )
printf("%d is a palindrome number.\n", n);
else
printf("%d is not a palindrome number.\n", n);
 
return 0;
}


Сам го пишував кодов и работи и се е во ред само имам нешто што не ми е баш јасно.
Кај променливата reverse ако не сум разбрал погрешно кога се пишува нова вредност старата се брише ,а во овој случај ги зема сите 3 вредности(пример коментарот 1,2,1=121)
Дали има врска што е во While па поинаку се однесува?
Ќе бидам благодарен ако ми објасни некој.
Па да, точно е дека кога се пишува нова вредност во reverse се брише старото.
Ете reverse нека е 0 и бројот што си внесол да е 121 и вака иде кодот:

reverse=reverse*10 === 0=0*10
reverse=reverse+temp%10 === 0=0+121%10
(tmp)121=(tmp)121/10 === 121=121/10;

втор циклус:

reverse=reverse*10 === 1=1*10
reverse=reverse+temp%10 === 10=10+12%10
(tmp)121=(tmp)121/10 === 12=12/10;

трет циклус:

reverse=reverse*10 === 12=12*10
reverse=reverse+temp%10 === 120=120+1%10
(tmp)121=(tmp)121/10 === 1=1/10;

и ке заврши програмата..reverse ќе стане 121.
Фактички се брише старата вредност но пред да се избрише старата вредност се множи со 10 па тој резултат се доделува на reverse и веќе е сменет вредноста на reverse. После се додава остатокот од делењето tmp%10 на reverse и тоа е новата вредност на reverse.:icon_lol:
 

Kajgana Shop

На врв Bottom