C/C++

Член од
27 јули 2015
Мислења
16
Поени од реакции
3
Може некој да објасни нешто за dynamic_cast? кога се користи и каде? :)
 
D

DAoliHVAR

Гостин
Ај нид хелп аген :)
Следниот код пример за употреба на преоптоварениот операторот за доделување, но кодот работи и без тој дел од кодот, т.е кода ќе го искоментирам делчето каде што се врши преоптоварувањето на операторот пак се нормално функционира. Знае ли некој зошто? :)
Кодот ти работи заради тоа што компајлерот , и без ти да напишеш твој оператор , ти прави “генерички“ оператор = .
тој генерички оператор не се гледа во кодот , ама работи исто како и кодот што ти си го напишал , имено , иде бит по бит ,и се што има во едната класа го копира СКРОЗ ИСТО како и во оригиналната класа. Ова работи добро се додека не почнеш да работиш со покажувачи.
така да се додека во класата не користиш полажувачи нема никаква потреба да правиш свои оператори .
@Lucifer Sam
не викам дека оригиналниот код му е добар, ти како што кажа е правилно, ама и без твоите поправки кодот работи.
едино што нема да може он да прави со неговата верзија на кодот би било :
Class A , B , C ;
A=B=C ;
 
Член од
31 август 2008
Мислења
1.853
Поени од реакции
815
Кодот ти работи заради тоа што компајлерот , и без ти да напишеш твој оператор , ти прави “генерички“ оператор = .
тој генерички оператор не се гледа во кодот , ама работи исто како и кодот што ти си го напишал , имено , иде бит по бит ,и се што има во едната класа го копира СКРОЗ ИСТО како и во оригиналната класа. Ова работи добро се додека не почнеш да работиш со покажувачи.
така да се додека во класата не користиш полажувачи нема никаква потреба да правиш свои оператори .
@Lucifer Sam
не викам дека оригиналниот код му е добар, ти како што кажа е правилно, ама и без твоите поправки кодот работи.
едино што нема да може он да прави со неговата верзија на кодот би било :
Class A , B , C ;
A=B=C ;
Претпоставував дека функционира генерички оператор за доделување. Ajifos* и сам кажа дека кодот функционира. Идејата ми беше да укажам на грешките во кодот за да го доловам начинот на кој се оптоварува оператор.
 
Член од
6 јуни 2016
Мислења
24
Поени од реакции
1
Знае некој да направи код во C..... името на програмата е "Број Палиндром"....
валјда ке треба да се внесе на влез еден цел број и да се провери дали е палиндром или не е...
а колку што знам палиндроми се броеви што се исто пишуваат од назад и од напред пример. 66, 77, 88, 444. така нешто како што знам.
е сега незнам како со условот да го проверам дали е палиндром ???
 
Член од
1 јуни 2011
Мислења
25.909
Поени од реакции
41.872
Палиндром ти е и 121,151, 1221, 56065, 123321, .. итн
Код:
int num,r,sum=0,temp;
    printf("Vnesi broj: ");
    scanf("%d",&num);
    temp=num;
    while(num){
         r=num%10;
         num=num/10;
         sum=sum*10+r;
    }
    if(temp==sum)
         printf("%d e palindrom",temp);
    else
         printf("%d ne e palindrom",temp);
    return 0;
}
 
Член од
6 јуни 2016
Мислења
24
Поени од реакции
1
Палиндром ти е и 121,151, 1221, 56065, 123321, .. итн
Код:
int num,r,sum=0,temp;
    printf("Vnesi broj: ");
    scanf("%d",&num);
    temp=num;
    while(num){
         r=num%10;
         num=num/10;
         sum=sum*10+r;
    }
    if(temp==sum)
         printf("%d e palindrom",temp);
    else
         printf("%d ne e palindrom",temp);
    return 0;
}
Фала другар :D
 
Член од
6 јуни 2016
Мислења
24
Поени од реакции
1
Може уште еден програмски код во С за помош...
Програмата се вика Ден, месец, година......
И сега од влез се внесува реден број на месецот....и се проверува колку денови има во тој месец... 29, 30 или 31....... И да се провери дали годината е престапна или не..
 
Член од
1 јуни 2011
Мислења
25.909
Поени од реакции
41.872
А факултет да завршиме место тебе? :unsure:


Код:
if(mесеc==1 || mесеc==3 || mесеc==5 || mесеc==7 || mесеc==8 || mесеc==10 || mesec==12)
    {
        printf("31 den");
    }
    else if(mesec==4 || mesec==6 || mesec==9 || mesec==11)
    {
        printf("30 dena");
    }
    else if(mesec==2)
    {
        printf("28 ili 29 dena");
    }
    else
    {
        printf("Pogresen broj! Vnesi broj pomegu (1-12).\n");
    }
  printf ("Vnesi godina: \n");
    scanf ("%d", &godina);

if ((godina%400==0)||((godina%4==0)&&(godina%100!= 0)))
          printf ("Godinata e prestapna: \n");
    else
          printf ("Godinata ne e prestapna: \n");
    return 0;
}
 

Ilumious

Патник, педер, поет, администратор, масон
Член од
29 јануари 2007
Мислења
84.962
Поени од реакции
195.489
На кој факс си, многу прости задачиве? :|
 

Amaterasu

123123113
Член од
17 април 2012
Мислења
1.141
Поени од реакции
1.085
Знаете дека со директно пишување на кодови без никакво објаснување воопшто не им помагате во учењто ?

Дечки кога сакате да прашате за некоја задача треба прво да пробате да ја решите. Ако поминале 4-5-6-7-8 саати и не сте стигнале до решението, ќе го постирате кодот кој сте го пишувале тука и ќе побарате помош.
И може да пробате да побарате решение на нет. Пример да напишеш " number palindrome c code" ќе добиеш еден милион различни кодови за решавањена таа задача.
 
Член од
21 март 2014
Мислења
511
Поени од реакции
375
Дечки задача од мендо:http://mendo.mk/Task.do?id=617

Код:
#include <bits/stdc++.h>
using namespace std;
int main(){
int k,n,index,indexmal,najgolem=0,najmal=1000001;
cin >> n >> k;
int A[n],B[n];
for(int i=0;i<n;i++)
{
    cin >>A[i];
    B[i]=0;
}
for(int i=0;i<k;i++){
    for(int j=0;j<n;j++){
        if(A[j]>najgolem)
        {
            najgolem=A[j];
            index=j;
        }if(A[j]<najmal && A[j]!=0){
        najmal=A[j];
        indexmal=j;
        }
    }
    B[indexmal]=A[index];B[index]=A[indexmal];
    A[index]=0;A[indexmal]=0;
    najgolem=1;najmal=1000001;
}
for(int i=0;i<n;i++){
    if(B[i]==0){
        if(i==n)
cout << A[i];
else
    cout << A[i] <<" " ;
    }else{
     if(i==n)
cout << B[i];
else
    cout << B[i] <<" " ;
    }
}
}
Ми дава 15/20 другите се надминат временски лимит.
Да барам нов начин на решавање или може ова решение да помине ?

Благодарам однапред.
 

Amaterasu

123123113
Член од
17 април 2012
Мислења
1.141
Поени од реакции
1.085
Дечки задача од мендо:http://mendo.mk/Task.do?id=617

Код:
#include <bits/stdc++.h>
using namespace std;
int main(){
int k,n,index,indexmal,najgolem=0,najmal=1000001;
cin >> n >> k;
int A[n],B[n];
for(int i=0;i<n;i++)
{
    cin >>A[i];
    B[i]=0;
}
for(int i=0;i<k;i++){
    for(int j=0;j<n;j++){
        if(A[j]>najgolem)
        {
            najgolem=A[j];
            index=j;
        }if(A[j]<najmal && A[j]!=0){
        najmal=A[j];
        indexmal=j;
        }
    }
    B[indexmal]=A[index];B[index]=A[indexmal];
    A[index]=0;A[indexmal]=0;
    najgolem=1;najmal=1000001;
}
for(int i=0;i<n;i++){
    if(B[i]==0){
        if(i==n)
cout << A[i];
else
    cout << A[i] <<" " ;
    }else{
     if(i==n)
cout << B[i];
else
    cout << B[i] <<" " ;
    }
}
}
Ми дава 15/20 другите се надминат временски лимит.
Да барам нов начин на решавање или може ова решение да помине ?

Благодарам однапред.
Моменталното решение ти работи со сложеност О(K*N) и не е доволно брзо да ги помине поголемите тест примери. Постои решение кое работи побрзо. Како хинт, почни да размислуваш за сортирање на низата :D
 
Член од
27 август 2016
Мислења
105
Поени од реакции
29
За даден центар на кружница и нејзин радиус да се одреди низ кои квадранти
минува.

Хееелп??? Немам ни идеја како да почнам
 

Kajgana Shop

На врв Bottom