您好,登錄后才能下訂單哦!
這篇文章給大家分享的是有關C++中signed main和int main有哪些區別的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。
看見大佬的C++代碼,主函數"int main"打成了"signed main",心生疑問,便去查閱。
#pragma Gcc optimize(3,"inline","Ofast"); #include<bits/stdc++.h> using namespace std; #define int long long typedef long long ll; signed main(){ double d;cin>>d; printf("%.1f",d/59535); }
因為頭文件聲明:#define int long long
,然后int main改成signed main就行了
個人平時寫代碼最簡單的缺省源是:
#include<bits/stdc++.h> #define int long long using namespace std; signed main(){ return 0; }
注意到 #define int long long
而 main 函數必須返回一個 int 值,所以不能使用 int main()。
那怎么辦呢?通常使用 signed main,因為 signed 等效替代于 signed int,也就是有符號整型,這與 int 別無二致,并且不會導致奇怪的 CE。
int本來就是signed int。int = signed int = signed,就像unsigned = unsigned int
當你不確定過程中會不會爆 int 的時候,可以這么寫。
同樣的字節數,如果保存符號位,范圍為正負,數字位相對少一,絕對值范圍小
總結:
頭文件聲明#define int long long
,防止爆int
#define ll long long int main(){ ll int x; scanf("%lld",&x); } #define int long long signed main(){ ... }
一種獨特的定義longlong的方法:
#include<bits/stdc++.h> #define int long long using namespace std; const int p=1e9+3; int T,n,m,a,fac[100010]={1}; signed main() { for(int i=1;i<=100000;i++) fac[i]=fac[i-1]*i%p; scanf("%lld",&T); while(T--) { int res=1,ans=1; scanf("%lld %lld",&n,&m); for(int i=1;i<=n;i++) scanf("%lld",&a),res=res*fac[a]%p; for(int i=1;i<=m;i++) scanf("%lld",&a),ans=ans*fac[a]%p; if(res==ans) puts("equal"); else puts("unequal"); } return 0; }
感謝各位的閱讀!關于“C++中signed main和int main有哪些區別”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。