大家好,又到了一天一度的打“i”现场
在上次,通过程序员地抢救,i活了,今日继续拿他作实验!
i(手缠绷带,拄着拐杖,笑容异常和蔼):
“嗯!我又要被程序员折磨,啊啊啊啊!孰可忍孰不可忍!!!”
不用理他,我们转入正题吧 嘻嘻
话说天下大数,int,龙龙(long long)皆可解决
特别是龙龙(long long)手持long long的最大值:9223372036854775807尺的大刀
身穿long long的最小值:-9223372036854775808耐久度的防御甲
让那些平常数字一看,就为之颤抖,呆若木鸡
气场使他们无法动弹:
龙龙(long long):“哥一直被模仿,但从未被超越,哈哈哈哈哈!”
正当龙龙(long long)吃了一颗益达 ,仰天长笑时。
99999999感到无比愤怒,却又无可奈和
忽然旁边的12345678递出了两样神器。
“999感冒灵”以及“士力架”!!!!!!
只见99999999喝下"999感冒灵",吃下了“士力架”。
“啊!”99999999马上变成了999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
“汗流浃背了吧,老弟”
龙龙(long long)一跪 二哭 三忏悔。(灬ꈍ ꈍ灬)
这时i还待在龙龙这里呢
i正读着这个数,不禁脑壳发昏 头晕目眩 眼前直冒金星 最终英勇牺牲
if(你在哀悼i){
for(int i=1;i<=9999999999999999999999999999999999999999999999999999;i++){
printf("从前有座山,山里有座庙,庙里有个老和尚再给小和尚讲故事");
printf("讲的是什么故事呢:");//念经模式已开启
}
else{
cout<<"干得好”<<endl;
}
999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
已开始狂轰乱炸
oh 对了 i呢?
#include<bits/stdc++.h>
using namespace std;
int main(){
long long i;
scanf("%lld",&i);
printf("%lld",i);
return 0;
}
看一下
唉 i真是可怜啊
邓布利多曾说要怜悯活人,不用怜悯死人,要怜悯没有家的人(所以i咱不管了 哈哈哈!)
面对如此大的灾难
longlong国防部立刻召开了会议
根据协商 各大被longlong赋予的字母
马上抓住了12345678
12345678在审讯室里一问三不知
“砰”“盔甲护身!”
不想 12345678竟然私藏枪支
程序员怒了
“阿瓦达啃大瓜!”
绿光闪过 打在12345678的旁边
12345678顿时吓晕
各大字母争相喂给12345678吐真剂
醒后 一问三都知
终于找到了破解之法。
方法如下:
首先将char事务所的s数组调过来
#include<bits/stdc++.h>
using namespace std;
int main(){
char s[101]//跟数字位数有关
return 0;
}
然后把数字当字符分配给是s数组的各位成员
#include<bits/stdc++.h>
using namespace std;
int main(){
char s[101];
scanf("%s",s);
return 0;
}
嗯!我要的是数字,不是字符啊,这样做谁都会吧
而且,字符无法运算(不准确,大概应该差不多吧)
哈哈 打住,方案还没有执行完呢
接下来存到int数组
“啊啊啊啊????????????????????????????????”
“char字符怎么可以存到int里呢 类型都不一样!!!!!!!”
你为何不试一下呢?
#include<bits/stdc++.h>
using namespace std;
int main(){
char s='0';
printf("%d",s);
return 0;
}
"这肯定是错的!一定会报错!!!!!!!char一个字符应该用%c怎么能用int的%d来用呢"
赶紧试一下吧
根本不会报错!!!
“怎么会这样!!!”
别着急
加上输出试一下(如果你是个小白 用的是cout和cin)(我也是小白)
cin------scanf
cout------printf
#include<bits/stdc++.h>
using namespace std;
int main(){
char s='0';
printf("%d",s);
return 0;
}
会输出“48”
“啊!”
不信吗
这就是证据
没错 int与char有联系
是的ASCll闪亮登场!!
对照表来啦!
大家不用慌张(别以为你需要背下来)
这些涂了颜色的,用的多了也就记住了
另外,空格(space)换行也记一下就好了
通过ASCII码
在蓝色那部分的“0”看到了吗
对应的就是48
这下大家懂了吧
把他存进int:
#include <bits/stdc++.h>
using namespace std;
int a[101];
char s[101];
int main(){
scanf("%s",s+1);
int len=strlen(s+1);
for(int i=1;i<=len;i++){
a[i]=s[i]-'0';
}
return 0;
}
strlen是一个函数
会自动计数字符的个数
格式如下
strlen(数组名+1)(我是1派的,你们是0派的我不管)
这样len的范围1-len
这里面-'0'是字符0
要加单引号
相当于-48
为何要-48呢
找规律
48-0=48;
49-1=48;
...........
所以字符所对应的数字-48就是原来的数字
现在读入完成了
输出还是问题吗?
#include <bits/stdc++.h>
using namespace std;
int a[101];
char s[101];
int main(){
scanf("%s",s+1);
int len=strlen(s+1);
for(int i=1;i<=len;i++){
a[i]=s[i]-'0';
}
for(int i=1;i<=len;i++){
printf("%d",a[i]);
}
return 0;
}
好的现在 我们就可以打败喝了“999感冒灵” 吃了“士力架”的999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
鹅鹅鹅鹅鹅鹅鹅鹅鹅鹅鹅鹅鹅鹅鹅鹅鹅鹅鹅鹅鹅鹅鹅鹅
为了让更多人看不到
我要水点字数!!!!!!!!!!!!!!!!