Global scope
Որոշ դեպքերում, արագ կոդ գրելու նպատակով, կարելի է օգտվել
global scope
-ից և որոշ փոփոխականներ պահել այնտեղ։ Այդ փոփոխականները հասանելի կլինեն բոլոր իրենցից ներքև գտնվող ֆունկցիաներին։ Այդ թվում և main
ֆունկցիային։ #include <iostream>
using namespace std;
int n;
void some_function() {
++n;
cout << n << endl;
}
int main() {
cin >> n;
some_function();
some_function();
some_function();
some_function();
return 0;
}
Այս ծրագիրը հայտարարում է մի փոփոխական
n
, որն ունի int
տիպ և main
-ում ներմուծում է այն։ Ենթադրենք, որ այս անգամ ներմուծել ենք 10։ Դրանից հետո main
-ից մենք կանչում ենք some_function()
-ը, որը մեծացնում է n
-ի արժեքը, իսկ հետո տպում այն։ Քանի որ n
-ը հայտարարված է some_function
-ից առաջ, այն հասանելի է some_function
-ին և some_function
-ը սկզբում n
-ը դարձնում է 11
իսկ հետո տպում դրա արժեքը։Նույնը կատարվում է երկրորդ անգամ
some_function
-ը կանչելուց։ Այն սկզբում մեծացնում է n
-ի արժեքը դարձնելով այն 12
, իսկ հետո տպում այն։ Երրորդ անգամ some_function
-ը տպում է 13
, ու վերջում 14
։Այսպիսով, վերևում հայտարարված փոփոխականները հասանելի են ֆունկցիաների մեջ։ Եթե
n
-ը հայտարարված լիներ some_function
-ից հետո և main
-ից առաջ, ապա այն հասանելի չէր լինի some_function
-ում։ Կարող եք ինքներդ փորձել և տեսնել թե ինչ է ասում C++-ի compiler-ը։Վարժություն՝
Ունենալով
q
հատ հարցում, որոնցից ամեն մեկում գրված է երկու թիվ, անհրաժեշտ է պարզել ամեն զույգի մեջից մեծագունը և վերջում տպել թե դեպքերից քանիսում է մեծագունը երկրորդը։Մուտքի առաջին տողում տրված է
q
բնական թիվը (1 ≤ q ≤ )։ Դրան հետևում են q
տողեր, որոնցից յուրաքանչյուրում գրված է մի զույգ a
և b
թվեր։Ելքի առաջին
q
տողում անհրաժեշտ է տպել այդ զույգերից յուրաքանչյուրից մեծագույնի արժեքը։ Եվ վերջին տողում անհրաժեշտ է տպել թե դրանցից քանի դեպքում էր երկրորդ թիվը ավելի մեծ առաջինից։Մուտք | Ելք |
4
1 2
2 1
0 -5
5 10 | 2
2
0
10
2 |
Հուշում՝ Կարող եք սահմանել
int max
ֆունկցիա, որը ոչ միայն կվերադարձնի մեծագույնը, այլ նաև կգումարի 1 մի գլոբալ փոփոխականի, եթե երկրորդ թիվը մեծ է առաջինից։Constraints
Time limit: 0.4 seconds
Memory limit: 512 MB
Output limit: 10 MB