fork(1) download
  1. //#include <stdio.h>
  2. //int main()
  3. //{
  4. // int a=10;
  5. // int b=20;
  6. // printf("%d\n",a+b);
  7. // printf("%d\n",a*b);
  8. // printf("%d\n",a/b);//最近一次将一切都该回原始int b=20以及%d后面报出的是0,是因为int是整型10/20为0.5因此它只取前面的0
  9. //前一次运算的时候“int b=20”而不是20.0。改成20.0还是不行。无论我d改为f,还是改回来都不行以及a=10.0我也试过了不行
  10. //int b改为float b也不行,其他都不改变将b改为b.0会报错
  11. // printf("%d\n",b/a);
  12. // printf("%d\n",4+234);
  13. // printf("%d\n",678-345);
  14. // printf("%d\n",34/17);
  15. // printf("%.8f\n",10/3.0);
  16. //这里前一次在%后面输的是“8”而不是".8"导致最后输出的数为3.333333是小数点后6位而不是我设定的后8位。
  17. // return 0;
  18.  
  19. //}
  20.  
  21. //求模运算符% /得商 %得余(仅用于整数间)
  22. //int main()
  23. //{
  24. // printf("%d\n",123%10);// 123/10=12.3 最后输出3
  25. // printf("%d\n",123%100);// 123/100=1.23 最后输出23
  26. // printf("%d\n",1234%100);// 1234//100=12.34 最后输出34
  27. // return 0;
  28. //}
  29.  
  30. //负数求余:结果的正负号由第一个操作符决定
  31. //int main()
  32. //{
  33. // printf("%d\n",11%-5);//输出1
  34. // printf("%d\n",-11%5);//输出-1
  35. // printf("%d\n",11%5);//输出1
  36. // printf("%d\n",-11%-5);//输出-1
  37. // return 0;
  38. //}
  39.  
  40. //赋值操作符
  41. //number 1.简单的操作符
  42. //int main()
  43. //{
  44. // int a=10;//(这叫初始化不叫赋值)
  45. // printf("%d\n",a=20);//这叫赋值 最后输出20
  46. // printf("%d\n",a=4+5);//这是将右边的值赋给左边 最后输出9
  47. // return 0;
  48. //}
  49.  
  50. //复合连赋
  51. //int main()
  52. //{
  53. // int a=10;
  54. // a=a+3;//或者写a+=3(这里表示一个意思:a自增三)
  55. // printf("%d\n",a);//结果为13
  56. // return 0;
  57. //}
  58. //第二种
  59. //int main()
  60. //{
  61. // int a=30;
  62. // a+=23;//(a原本的值为30,自增23后输出53)
  63. // printf("%d\n",a);
  64. // return 0;
  65. //}
  66. //第三种
  67. //int main()
  68. //{
  69. // int a=10;
  70. // a = a%3;
  71. // printf("%.3f",a);//因为前面的a是int类型的,而这里的用了float类型,所以输出的是0.000。可以用一下强行转型的方法
  72. // return 0;
  73. //}
  74. //{
  75. // int a=10;
  76. // a = a%3;
  77. // printf("%.3f\n",(double)a);//因为10/3的余数为1,所以输出1(%输出余数)接下来用/试试
  78. // return 0;
  79. //}
  80.  
  81. // #include <stdio.h>
  82. // int main()
  83. // {
  84. // int a=10;
  85. // a%=3;
  86. // printf("%d\n",a);//结果余一,因为%仅输出整数相除的余数
  87. // return 0;
  88. // }
  89.  
  90. //强制转型符
  91. // int main()
  92. // {
  93. // int a=(int)3.14;
  94. // printf("%d\n",a);
  95. // return 0;
  96. // }
  97.  
  98.  
  99.  
  100. //{
  101. // int a=10;
  102. // a =a/3;
  103. // printf("%d\n",a);//输出整数3
  104. // return 0;
  105. //}
  106.  
  107.  
  108.  
  109.  
  110.  
  111.  
  112.  
  113. //number 2.连续赋值
  114. //int main()
  115. //{
  116. // int a=3;
  117. // int b=5;
  118. // int c=0;
  119. // printf("%d\n",c=b=a+3);//这里是向右赋值,即:a+3=6,那么b=6,然后c=b,即c=6
  120. // return 0;
  121. //}
  122. //第二种写法,会比第一种更方便看,但不为连赋
  123. //int main()
  124. //{
  125. // int a=3;
  126. // int b=5;
  127. // int c=0;
  128. // printf("%d\n",b=a+3);
  129. // printf("%d\n",c=b);//此次及上面65行均不为连赋
  130. // return 0;
  131. //}
  132.  
  133. //sizeof操作符
  134. // int main()
  135. // {
  136. // printf("%zu\n",sizeof(char));//输出1
  137. // printf("%zu\n",sizeof(_Bool));//输出1
  138. // printf("%zu\n",sizeof(float));//输出4
  139. // printf("%zu\n",sizeof(short));//输出2
  140. // printf("%zu\n",sizeof(int));//输出4
  141. // printf("%zu\n",sizeof(long));//输出8
  142. // printf("%zu\n",sizeof(long long));//输出8
  143. // printf("%zu\n",sizeof(double));//输出8
  144. // printf("%zu\n",sizeof(long double));//输出16
  145. // return 0;
  146. // }
  147.  
  148. //全局编译e.g int num1
  149. //局部编译e.g int num2
  150. // #include <stdio.h>
  151. // int num1 =20;
  152. // int main()
  153. // {
  154. // int num2 =10;
  155. // printf("%d\n",num1);
  156. // printf("%d\n",num2);
  157. // return 0;
  158. // }
  159.  
  160. //printf占位符
  161. // #include <stdio.h>//头文件
  162. // int main()
  163. // { char Zhangsan[] = "Zhangsan.";
  164. // printf("there are %d apples.\n",3);
  165. // printf("Zhangsan will come back tonight.\n");
  166. // printf("%s will come back tonight.\n",Zhangsan);//这里之前报错过,因为没带有声明“char Zhangsan[] = "Zhangsan";”
  167. // printf("Zhangsan said:It's 9 o'clock now.\n");
  168. // printf("%s said:It's %d o'clock now.",Zhangsan,9);
  169. // return 0;
  170. // }
  171.  
  172. //赋值忽略符
  173. //正常时用户输入的格式必须符合格式,如下
  174. // int main()
  175. // {
  176. // int a=0;
  177. // int b=0;
  178. // scanf("%d%d",&a,&b);
  179. // printf("a =%d\nb =%d\n",a,b);//此时输入10 20格式的内容时,系统会输出a=10
  180. // //b=20
  181. // //但是当我输入10,20时系统识别不到b,而输出b=0
  182. // //是因为格式不正确
  183. // return 0;
  184. // }
  185.  
  186. //第二种格式
  187. // int main()
  188. // {
  189. // int a=0;
  190. // int b=0;
  191. // scanf("%d,%d",&a,&b);
  192. // printf("a=%d\nb=%d\n",a,b);//此时必须输入“10,20”的格式才可以输出a=10和b=20
  193. // return 0;
  194. // }
  195. //第三种
  196. // #include <stdio.h>
  197. // int main()
  198. // {
  199. // int year=0;
  200. // int month=0;
  201. // int day=0;
  202. // scanf("%d-%d-%d",&year,&month,&day);//这里只能用1999-02-11的格式,像1999/02/11这种的或者其他格式都不行
  203. // printf("%d %d %d\n",year,month,day);//输入正确格式后其会输出:1999 02 11
  204. // return 0;
  205. // }
  206. //如果想要输入任意格式都可执行,需要运用到赋值忽略符
  207.  
  208. // #include <stdio.h>
  209. // int main()
  210. // {
  211. // int year=0;
  212. // int month=0;
  213. // int day=0;
  214. // scanf("%d%*c%d%*c%d",&year,&month,&day);//这种格式的必须在1999和12和11之间输入分隔符e.g-和/
  215. // printf("%d %d %d",year,month,day);
  216. // return 0;
  217. // }
  218.  
  219. //不用分隔符时,也不能用赋值忽略符
  220. // int main()
  221. // {
  222. // int year=0;
  223. // int month=0;
  224. // int day=0;
  225. // scanf("%4d%2d%2d",&year,&month,&day);//这里的4,2,2是指要%d只读4个字符,2字符,2个字符
  226. // printf("%d %d %d",year,month,day);//这时直接输入19991211即可不用输分隔符
  227. // return 0;
  228. // }
  229. // int main()
  230. // { char Zhangsan[] = "Zhangsan";//字符数组用来存放名字,这里不能用int
  231. // printf("%s says,it's %d o'clock\n",Zhangsan,10);
  232. // return 0;
  233. // }
  234.  
  235. //输出格式
  236. // int main()
  237. // {
  238. // printf("%d\n",123);//输出为123
  239. // printf("%5d\n",123);//输出为 123,在一之前有两个空格,以及默认为右对齐
  240. // printf("%-5d\n",123);//输出为123 ,再三后有两个空格,以及加了负号后为左对齐
  241. // printf("%f\n",123.456);//这里输出123.456000因为%f默认输出小数点后6位
  242. // printf("%12f\n",123.456);//这里输出 123.456000加上小数点和前面的空格为12个字符,即右对齐
  243. // return 0;
  244. // }
  245.  
  246. //总显正号,正在默认情况下printf函数不显正号显负号,而在%后面加个+即可总显正号
  247. // int main()
  248. // {
  249. // printf("%d\n",12);//==12
  250. // printf("%+d\n",12);//==+12
  251. // printf("%d\n",-12);//==-12
  252. // printf("%+d\n",-12);//==-12,则由以上在使用printf函数的前提下可知在%后面加+可以使原本为正数的数字显正号
  253. // return 0; //而对原本为负号的数字无用
  254. // }
  255.  
  256. //限定小数位数:前面已经知道了%f默认小数的后六位,而在%后面加上“.数字“就可以限制其在小数点后面的位数
  257. // int main()
  258. // {
  259. // printf("%f\n",1.2374);//==1.237400
  260. // printf("%.3f\n",1.2374);//==1.237小数点后3位
  261. // printf("%.2f\n",1.2374);//==1.24小数点后2位,而且会四舍五入
  262. // //同时与前面的知识结合
  263. // printf("%10.3f\n",1.2374);//== 1.237,前面有5个空格,且10表示的是向右对齐并一共有10个字符,3是指小数点后三位
  264. // printf("%5.2f\n",1.2374);//== 1.24,前面有一个空格
  265. // return 0;
  266. // }
  267.  
  268.  
  269. //输出部分字符串:在%s的%后面加上“.数字”,如下,
  270. // int main()
  271. // {
  272. // printf("%s\n",abcdef);
  273. // printf("%.3f\n"abcdef);
  274. // return 0;
  275. // }
  276.  
  277.  
  278. // #include <stdio.h>
  279. // int main()
  280. // {
  281. // int a=0;
  282. // int b=0;
  283. // while(scanf("%d %d",&a,&b)==2);
  284. // {
  285. // int c=a+b;
  286. // printf("%d\n",c);
  287. // }
  288. // return 0;
  289. // }
  290. //scanf中的double必须用%lf,而printf中的double既可以用%f也可以用%lf
  291. //以及在scang中%【】可以指定一组匹配字符(e.g【0~9】),当其遇到不在范围内的字符时会停止
  292. // int main()
  293. // {
  294. // char str1[100];
  295. // scanf("%[a-z,A-Z]",str1);
  296. // printf("%s\n",str1);
  297. // return 0;
  298. // }
  299. //
  300. //多组输入
  301. // #include <stdio.h>
  302. // int main()
  303. // {
  304. // int a=0;
  305. // int b=0;
  306. // while(scanf("%d %d",&a,&b)==2)//可以同时输入12 34
  307. // //45 12234
  308. // //67 5690
  309. // //123456 153735
  310. // {
  311. // int c=a+b;
  312. // printf("%d\n",c);
  313. // }
  314. // return 0;
  315. // }
  316.  
  317. // #include <stdio.h>
  318. // int main()
  319. // {
  320. // int num=0;
  321. // char c=0;
  322. // scanf("%d",&num);
  323. // printf("%d\n",num);
  324. // scanf("%c",&c);
  325. // printf("%---c---\n",c);//在%c前加上一个空格可以防止123 abc时导致后面的abc读取不到
  326. // return 0;
  327. // }
  328.  
  329. // int main()
  330. // {
  331. // int num=0;
  332. // char c=0;
  333. // scanf("%d",&num);
  334. // printf("%d\n",num);//这时输入123 a就可以输出123
  335. // //a
  336. // scanf(" %c",&c);
  337. // printf("%c\n",c);
  338. // return 0;
  339. // }
  340.  
  341.  
  342. //输出年龄若>=18则输出成年,否则输出:未成年
  343. // #include <stdio.h>
  344. // int main()
  345. // {
  346. // int age=0;
  347. // scanf("%d",&age);
  348. // if(age >= 18)
  349. // printf("成年\n");//我成功了!!!!!!
  350. // else
  351. // printf("未成年\n");
  352. // return 0;
  353. // }
  354.  
  355. // int main()
  356. // {
  357. // int num = 0;
  358. // scanf("%d",&num);
  359. // if(num % 2 ==1)
  360. // printf("奇数\n");
  361. // else
  362. // printf("偶数\n");
  363. // return 0;
  364. // }
  365.  
  366. //嵌套的一种形式:在if后嵌套
  367. // #include <stdio.h>
  368. // int main()
  369. // {
  370. // int num =0;
  371. // scanf("%d",&num);
  372. // if(num>0) if(num%2==1)
  373. // printf("奇数\n");
  374. // else
  375. // printf("偶数\n");
  376. // else
  377. // printf("非正数\n");
  378. // return 0;
  379.  
  380. // }
  381.  
  382. //嵌套的另一种形式:在else后面嵌套
  383. // #include <stdio.h>
  384. // int main()
  385. // {
  386. // int num;
  387. // scanf("%d",&num);
  388. // if(num<0)
  389. // printf("非正数\n");
  390. // else if(num%2==1)
  391. // printf("奇数\n");
  392. // else
  393. // printf("偶数\n");
  394. // return 0;
  395. // }
  396.  
  397. //练习 大成功
  398. // #include <stdio.h>
  399. // int main()
  400. // {
  401. // int age=0;
  402. // scanf("%d",&age);
  403. // if(age<18)
  404. // printf("少年\n");
  405. // else if(age<=44)
  406. // printf("青年\n");
  407. // else if(age<=59)
  408. // printf("中年\n");
  409. // else if(age<=89)
  410. // printf("老年\n");
  411. // else if(age<=100)
  412. // printf("老寿星\n");
  413. // else
  414. // printf("老妖怪\n");
  415. // return 0;
  416. // }
  417.  
  418. // #include <stdio.h>
  419. // int main()
  420. // {
  421. // int a=0;
  422. // int b=0;
  423. // scanf("%d %d",&a,&b);
  424. // printf("%d\n",a/b);
  425. // return 0;
  426. // }
  427. // int main()
  428. // {
  429. // int a=0;
  430. // float b=0.0f;
  431. // scanf("%d %f",&a,&b);
  432. // printf("a=%d,b=%f,a/b=%f\n",a,b,a/b);
  433. // //这里不能只输printf(“a=%d,b=%f\n”,a/b)不然会无法正确识别以及输出a/b,甚至是啊a和b
  434. // return 0;
  435. // }
  436. // int main()
  437. // {
  438. // float a=0.0f;
  439. // int b=0;
  440. // scanf("%f %d",&a,&b);
  441. // printf("a=%f,b=%d,a/b=%f\n",a,b,a/b);
  442. // return 0;
  443. // }//输入10.0和4输出10.000000,4,2.500000
  444.  
  445.  
  446.  
  447. //悬空else问题
  448. // #include <stdio.h>
  449. // int main()
  450. // {
  451. // int a = 0;
  452. // int b = 0;
  453. // scanf("%d %d",&a,&b);
  454. // //输入1 3输出haha,输入2 3输出傻逼,输入1 2输出hehe haha(错:输出1 2时仅会输出haha,下方是修改),输入3 2输出hehe
  455. // if(a == 1)
  456. // printf("haha\n");
  457. // else if(b == 2)
  458. // printf("hehe\n");
  459. // else
  460. // printf("傻逼\n");
  461. // return 0;
  462. // }
  463. // int main()
  464. // {
  465. // int a =0;
  466. // int b =0;
  467. // scanf("%d %d",&a,&b);
  468. // if(a == 1){
  469. // printf("haha\n");
  470. // }
  471. // if(b == 2){
  472. // printf("hehe\n");
  473. // }
  474. // if(a != 1 && b != 2){
  475. // printf("傻逼\n");//!和&&两个加在一起的意思是:若a不等于1以及b不等于2同时满足那么打印傻逼
  476. // }
  477. // return 0;
  478. // }
  479.  
  480.  
  481. #include <stdio.h>
  482. // int main()
  483. // {
  484. // printf("%d\n",3 > 5);//运行后打印0
  485. // printf("%d\n",3 > 2);
  486. // return 0;
  487. // }
  488. // int main()
  489. // {
  490. // int age = 0;
  491. // scanf("%d",&age);
  492. // if(age > 18 && age <36)
  493. // {printf("青年\n");}
  494. // else if(age >=37 && age < 45)
  495. // {printf("中年\n");}
  496. // else if(age >= 46 && age < 90)
  497. // {printf("老年\n");}//输入25,37,78,成功运行
  498. // return 0;
  499. // }
  500.  
  501. //三目操作符
  502. // int main()
  503. // {
  504. // int a = 0;
  505. // int b = 0;
  506. // scanf("%d",&a);
  507. // if(a > 99)
  508. // printf("b = 5");
  509. // else
  510. // printf("b = 22");
  511. // return 0;
  512. // }//这是一种普通的方法,下面是三目操作符的方法
  513. // int main()
  514. // {
  515. // int a = 0;
  516. // int b = 0;
  517. // scanf("%d\n",&a);
  518. // b = a >99 ? 5 : 22;//定义b后要打印b才行!!!
  519. // printf("%d\n",b);
  520. // return 0;
  521. // }
  522. // int main()
  523. // {
  524. // int a = 0;
  525. // int b = 0;
  526. // scanf("%d %d",&a,&b);
  527. // int max = 0;
  528. // if(a > b)
  529. // max = a;
  530. // else
  531. // max = b;
  532. // printf("%d\n",max);
  533. // return 0;
  534. // }//下面是三目操作符的用法
  535. // int main()
  536. // {
  537. // int a = 0;
  538. // int b = 0;
  539. // scanf("%d %d",&a,&b);
  540. // int max = 0;
  541. // max =(a > b ? a : b);
  542. // printf("%d\n",max);
  543. // return 0;
  544. // }
  545.  
  546. //逻辑运算符
  547. //!:反操作符
  548. // int main()
  549. // {
  550. // int flag = 0;
  551. // scanf("%d",&flag);
  552. // if(flag == 12)
  553. // printf("牛逼👍\n");
  554. // else if(flag < 12)
  555. // printf("行\n");
  556. // else
  557. // printf("啥都不是\n");
  558. // return 0;
  559. // }//这里从第一个else开始可以用!来写,如下:
  560. // int main()
  561. // {
  562. // int flag = 0;
  563. // scanf("%d",&flag);
  564. // if(flag == 12)
  565. // printf("牛逼");
  566. // else if(flag < 12)
  567. // printf("好吧");
  568. // //下面是一个全新的断块与上面没有联系所以输入1时好吧和啥都不是都会蹦出来 ,下面是改良的
  569. // if(!flag <= 12)//同时这里犯了类似于关系操作符连续使用而导致的错误
  570. //因为这里的!优先级高于<=,所以先计算!flag而flag=1,!1结果为0,后判断0<=12,为真所以“啥都不是”被触发
  571. // printf("啥都不是");
  572. // return 0;
  573. // }
  574. // int main()
  575. // {
  576. // int flag = 0;
  577. // scanf("%d",&flag);
  578. // if(flag)
  579. // {
  580. // printf("haha\n");
  581. // }
  582. // if(!flag)
  583. // {
  584. // printf("hehe\n");//当我输入0时if(flag)为零就是假,而if(!flag)为!0=1表示真所以输出hehe
  585. // } //同理当我输一个非零的数e.g 13时if(flag)=if(13)=1,为真,而if(!flag)=if(!flag)=if(!13)=0,
  586. // // 为假,所以输出haha
  587. // return 0;
  588. // }
  589. //并且&&,或者||
  590. // int main()
  591. // {
  592. // int month = 0;
  593. // scanf("%d",&month);
  594. // // scanf("%[1-12]",&month);这里不能这样写完全错误,下面是解决后的方案
  595. // if(month < 1 || month >12)
  596. // {
  597. // printf("输入的月份不合法");
  598. // }
  599. // else
  600. // if(month == 3 || month == 4 || month == 5)//或者if(month >= 3 && month <= 5)
  601. // {
  602. // printf("春天\n");
  603. // }
  604. // else
  605. // {
  606. // printf("其他三个季节");
  607. // }
  608. // return 0; //下面是一个不易出错的方法
  609. // }
  610. // int main()
  611. // {
  612. // int month = 0;
  613. // scanf("%d",&month);
  614. // if(month >= 1 && month <= 12)
  615. // {
  616. // if(month >= 3 && month <=5)
  617. // printf("春天\n");
  618. // else
  619. // printf("其他三个季节\n");
  620. // }
  621. // else
  622. // printf("输入的季节不合法\n");
  623. // return 0;
  624. // }
  625. //或者||
  626. // int main()
  627. // {
  628. // int month = 0;
  629. // scanf("%d",&month);
  630. // if(month >= 1 && month <=12)
  631. // {
  632. // if(month == 1 || month == 2 || month == 12)
  633. // printf("冬天\n");
  634. // else
  635. // printf("其他三个季节\n");
  636. // }
  637. // else
  638. // printf("输入的季节不合法\n");
  639. // return 0;
  640. // }
  641. //小练习:闰年的判断
  642. int main()
  643. {
  644. int year = 0;
  645. scanf("%d",&year);
  646. if(year % 4 == 0 || year % 100 > 0 && year % 400 == 0)
  647. {
  648. printf("闰年\n");
  649. }
  650. else
  651. {
  652. printf("你是傻逼吗,这不是闰年\n");
  653. }
  654. return 0;
  655. }
  656.  
  657.  
  658.  
Success #stdin #stdout 0s 5312KB
stdin
2020
stdout
闰年