Follow along with the video below to see how to install our site as a web app on your home screen.
Забелешка: This feature may not be available in some browsers.
Кодот ти работи заради тоа што компајлерот , и без ти да напишеш твој оператор , ти прави “генерички“ оператор = .Ај нид хелп аген
Следниот код пример за употреба на преоптоварениот операторот за доделување, но кодот работи и без тој дел од кодот, т.е кода ќе го искоментирам делчето каде што се врши преоптоварувањето на операторот пак се нормално функционира. Знае ли некој зошто?![]()
Кодот ти работи заради тоа што компајлерот , и без ти да напишеш твој оператор , ти прави “генерички“ оператор = .
тој генерички оператор не се гледа во кодот , ама работи исто како и кодот што ти си го напишал , имено , иде бит по бит ,и се што има во едната класа го копира СКРОЗ ИСТО како и во оригиналната класа. Ова работи добро се додека не почнеш да работиш со покажувачи.
така да се додека во класата не користиш полажувачи нема никаква потреба да правиш свои оператори .
@Lucifer Sam
не викам дека оригиналниот код му е добар, ти како што кажа е правилно, ама и без твоите поправки кодот работи.
едино што нема да може он да прави со неговата верзија на кодот би било :
Class A , B , C ;
A=B=C ;
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;
}
Фала другарПалиндром ти е и 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; }
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;
}
Кога бев прва на ФЕИТ многу потешки лабораториски имавме, затоа прашувамНа ФИНКИ е 100%![]()
#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] <<" " ;
}
}
}
Моменталното решение ти работи со сложеност О(K*N) и не е доволно брзо да ги помине поголемите тест примери. Постои решение кое работи побрзо. Како хинт, почни да размислуваш за сортирање на низатаДечки задача од мендо:http://mendo.mk/Task.do?id=617
Ми дава 15/20 другите се надминат временски лимит.Код:#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] <<" " ; } } }
Да барам нов начин на решавање или може ова решение да помине ?
Благодарам однапред.