首先学会新建源文件
1.打开DEV C++
2.文件—>新建—>源代码

3.编写程序
4.编译并运行(F11)

第一个程序《Hello,World!》
题目描述
编写一个能够输出 Hello,World! 的程序。
提示:
- 使用英文标点符号;
Hello,World!逗号后面没有空格。H和W为大写字母。
样例输出
Hello,World!
代码
#include<bits/stdc++.h>
using namespace std;
int main()
{
printf("Hello,World!");
return 0 ;
}
其中
#include<bits/stdc++.h>//万能库
using namespace std;//表示使用命名空间
int main()//主函数
{
return 0 ;//结束程序运行
}
只是使用 C语言 的话,主函数 外只需要写所调用的库即可。
而 主函数 内才是程序所要运行的,比如这个题只需要输出一个 Hello,World! ,所以只有一个 printf 是有用的,在这里 printf 是 输出 的意思,而题中给的 Hello,World! 是个固定的一段字符,所以用 双引号 引起来一个输出即可。
在 C语言 中的代码实现大概是:
#include<stdio.h>
int main()
{
printf("Hello,World!");
return 0 ;
}
什么是库
我们在使用类似 printf 这样的操作时,都需要先调用其所对应的 库 ,否则无法正常使用。
而在该代码中使用的是 万能库 ,注意 ,这个 库 在 C语言 中无法使用。
输出字符菱形
题目描述
用 * 构造一个对角线长 555 个字符,倾斜放置的菱形。
样例输入 (无输入)
样例输出 #1
*
***
*****
***
*
不可以直接写为:
#include<bits/stdc++.h>
using namespace std;
int main()
{
printf(" *") ;
printf(" ***") ;
printf("*****") ;
printf(" ***") ;
printf(" *") ;
return 0 ;
}
即使写了很多个 printf 也不能实现 换行 的操作,而是要在双引号之间另外写 KaTeX parse error: Undefined control sequence: \n at position 1: \̲n̲ ,如下:
#include<bits/stdc++.h>
using namespace std;
int main()
{
printf(" *\n") ;
printf(" ***\n") ;
printf("*****\n") ;
printf(" ***\n") ;
printf(" *") ;
return 0 ;
}
第二个程序 《A+B Problem》
题目描述
输入两个整数 a,ba, ba,b,输出它们的和(∣a∣,∣b∣≤109|a|,|b| \le {10}^9∣a∣,∣b∣≤109)。
任何一个伟大的思想,都有一个微不足道的开始。
输入格式
两个以空格分开的整数。
输出格式
一个整数。
样例输入
20 30
样例输出
50
代码如下:
#include<bits/stdc++.h>
using namespace std;
int main()
{
int a , b ;
scanf("%d%d", &a, &b);
printf("%d",a + b);
return 0 ;
}
也可以把 a + b 的值先存到一个 c 上:
#include<bits/stdc++.h>
using namespace std;
int main()
{
int a , b , c;
scanf("%d%d", &a, &b);
c = a + b ;
printf("%d", c);
return 0 ;
}
我们每个要使用的 变量 都需要提前声明才能使用,而 int 就是声明 整数型变量 时使用的。
变量的赋值是 从右向左 的,不能写作 a+b=ca + b = ca+b=c ,而是要写成 c=a+bc = a + bc=a+b 。
思考题中为什么a,b的取值范围小于等于1e9
intintint 类型声明变量的取值范围是 −2147483648~2147483647-2147483648~2147483647−2147483648~2147483647 , 即 −231~231−1-2^{31} ~ 2^{31}-1−231~231−1
因为 intintint 声明的变量是 二进制 下的 323232 位,第一位是符号位,考虑剩余每一位都为 111 ,第 iii 位表示 十进制 下的 1∗2i−11 * 2^{i-1}1∗2i−1 ,则用等比数列求和公式全部相加后得到答案为 231−12^{31} - 1231−1。
超过此范围则被识别为其他奇怪的数。
对变量的理解
交换两个未知变量
给一个整数型变量 aaa 和 bbb ,交换两个数并输出:
#include<bits/stdc++.h>
using namespace std;
int main()
{
int a , b ;
scanf("%d%d", &a, &b) ;
int c = a ;
a = b ;
b = c ;
printf("%d %d",a , b) ;
return 0 ;
}
考虑理解为两饮料,AAA 杯里是可乐,BBB 杯里是雪碧,这时候你拿个空杯子,把 AAA 杯里的可乐先倒 CCC 杯里,然后 BBB 杯的雪碧倒入 AAA 空杯中,此时 AAA 杯是雪碧,CCC 杯是可乐,BBB 杯为空,最后把 CCC 杯中的可乐倒入 BBB 杯中,此时 AAA 杯是雪碧, BBB 杯是可乐。
不声明新的变量:
#include<bits/stdc++.h>
using namespace std;
int main()
{
int a , b ;
scanf("%d%d", &a, &b) ;
a = a + b ;
b = a - b ;
a = a - b ;
printf("%d %d",a , b) ;
return 0 ;
}
这个就纯数学,在纸上手推一下即可。
我们把这两个答案用空格隔开 %d\%d%d 用来给 aaa 和 bbb 占位。
浮点型小数
题目描述
一个三角形的三边长分别是 aaa、bbb、ccc,那么它的面积为 p(p−a)(p−b)(p−c)\sqrt{p(p-a)(p-b)(p-c)}p(p−a)(p−b)(p−c),其中 p=12(a+b+c)p=\frac{1}{2}(a+b+c)p=21(a+b+c)。输入这三个数字,计算三角形的面积,四舍五入精确到 111 位小数。
输入格式
第一行输入三个实数 a,b,ca,b,ca,b,c,以空格隔开。
输出格式
输出一个实数,表示三角形面积。精确到小数点后 111 位。
样例输入
3 4 5
样例输出
6.0
需要用到小数时我们用 doubledoubledouble 声明浮点型变量,占位用 %lf\%lf%lf 注意是小写的 LLL 而不是数字 111 ,输出时需要保留 xxx 位小数就写成 printf("%.xlf",s);printf("\%.xlf" ,s);printf("%.xlf",s);
#include <bits/stdc++.h>
using namespace std;
int main()
{
double a,b,c,p,s;
scanf("%lf%lf%lf" ,&a ,&b ,&c) ;
p = ( a + b + c ) / 2.0 ;
s = sqrt(p * (p - a) * (p - b) * (p - c));
printf("%.1lf" ,s);
return 0;
}
提示
数据保证能构成三角形,0≤a,b,c≤10000\leq a,b,c\leq 10000≤a,b,c≤1000,每个边长输入时不超过 222 位小数。
字符类型与ASCII码
题目描述
给定一个字符,用它构造一个底边长 555 个字符,高 333 个字符的等腰字符三角形。
输入格式
输入只有一行,包含一个字符。
输出格式
该字符构成的等腰三角形,底边长 555 个字符,高 333 个字符。
样例输入
*
样例输出
*
***
*****
提示
对于 100%100 \%100% 的数据,输入的字符是 ASCII 中的可见字符。
这里这个题不像前面那个直接输出 * 的,而是要看人家给你什么字符,输出对应的字符。
#include<bits/stdc++.h>
using namespace std;
int main()
{
char c ;
scanf("%c", &c) ;
printf(" %c\n", c) ;
printf(" %c%c%c\n", c, c, c) ;
printf("%c%c%c%c%c\n", c, c, c, c, c) ;
return 0 ;
}
字符类型变量声明时用 charcharchar ,占位时用 %c\%c%c
题目描述
输入一个小写字母,输出其对应的大写字母。例如输入 qqq 时,会输出 QQQ 。
样例输入
q
样例输出
Q

#include <bits/stdc++.h>
using namespace std;
int main()
{
char a;
scanf("%c", &a) ;
a = a - 32 ;
printf("%c", a) ;
return 0 ;
}
理解这个 323232 的由来
#include <bits/stdc++.h>
using namespace std;
int main()
{
char a;
scanf("%c", &a) ;
a = a - ('a' - 'A');
printf("%c", a) ;
return 0 ;
}
选择结构
if(判断条件) //优先判断是否成立
{
执行操作1 ;
操作2 ;
}
else if(其他分支) 执行操作 ;//如果前面的if没有成立,则判断该条件是否能成立
else 执行操作 ;//上面的if和若干else if都没有成立,执行else里的操作
其中每个小括号里面的判断条件中,如果需要判断相等,例如判断 aaa 是否等于 bbb ,需要写成 if(a==b)if(a == b)if(a==b) 这样的两个连续的等号,若满足条件则返回 true ,否则返回 false ,可以理解为分别是 000 和 111 。
当需要判断多个条件同时成立或成立其一即可时,用 ∣∣||∣∣ 或 &&\&\&&& 连接条件,如当我们需要判断是否 a>=ba>=ba>=b 且 b>=cb>=cb>=c 时不可以写成连等的 if(a>=b>=c)if(a >= b >= c)if(a>=b>=c),而是要写成 if(a>=b&&b>=c)if(a >= b \&\& b >= c)if(a>=b&&b>=c) 。
题目描述
给定一个整数,判断该数是奇数还是偶数。如果 nnn 是奇数,输出 odd;如果 nnn 是偶数,输出 even。
输入格式
输入仅一行,一个整数 nnn。
输出格式
输出仅一行,如果 nnn 是奇数,输出 odd;如果 nnn 是偶数,输出 even。
样例输入 1
5
样例输出 1
odd
样例输入2
10
样例输出2
even
提示
−100≤n≤100-100\le n\le 100−100≤n≤100。
注意记得考虑负数。
#include <bits/stdc++.h>
using namespace std;
int main()
{
int n ;
scanf("%d",&n);
if(n % 2) printf("odd") ;
else printf("even") ;
return 0 ;
}
题目描述
任意输入一个字符,判断其 ASCII 是否是奇数,若是,输出 YES,否则,输出 NO 。
例如,字符 A 的 ASCII 值是 65,则输出 YES,若输入字符 B(ASCII 值是 666666),则输出 NO。
输入格式
输入一个字符。
输出格式
如果其 ASCII 值为奇数,则输出 YES,否则,输出 NO。
样例输入1
A
样例输出1
YES
样例输入2
B
样例输出2
NO
这里用 charcharchar 来声明字符型变量,在运算时自动理解为其对应的 ASCIIASCIIASCII 码值
#include <bits/stdc++.h>
using namespace std;
int main()
{
char n ;
scanf("%c",&n);
if(n % 2 == 1) printf("YES") ;
else printf("NO") ;
return 0 ;
}
题目描述
输入一个年份,判断这一年是否是闰年,如果是输出 111,否则输出 000。
158215821582 年以来,闰年的定义:
普通闰年:公历年份是 444 的倍数,且不是 100100100 的倍数的,为闰年(如 200420042004 年、202020202020 年等就是闰年)。
世纪闰年:公历年份是整百数的,必须是 400400400 的倍数才是闰年(如 190019001900 年不是闰年,200020002000 年是闰年)。
输入格式
输入一个正整数 nnn,表示年份。
输出格式
输出一行。如果输入的年份是闰年则输出 111,否则输出 000。
样例输入1
1926
样例输出1
0
样例输入2
1900
样例输出2
0
样例输入3
2000
样例输出3
1
样例输入4
1996
样例输出4
1
数据保证,1582≤n≤20201582 \leq n \leq 20201582≤n≤2020 且年份为自然数。
#include <bits/stdc++.h>
using namespace std;
int main()
{
int a;
scanf("%d",&a);
if(((a % 4 == 0) && (a % 100 != 0)) || (a %400==0)) printf("1");
else printf("0") ;
return 0;
}
数的,必须是 400400400 的倍数才是闰年(如 190019001900 年不是闰年,200020002000 年是闰年)。
输入格式
输入一个正整数 nnn,表示年份。
输出格式
输出一行。如果输入的年份是闰年则输出 111,否则输出 000。
样例输入1
1926
样例输出1
0
样例输入2
1900
样例输出2
0
样例输入3
2000
样例输出3
1
样例输入4
1996
样例输出4
1
数据保证,1582≤n≤20201582 \leq n \leq 20201582≤n≤2020 且年份为自然数。
#include <bits/stdc++.h>
using namespace std;
int main()
{
int a;
scanf("%d",&a);
if(((a % 4 == 0) && (a % 100 != 0)) || (a %400==0)) printf("1");
else printf("0") ;
return 0;
}
984

被折叠的 条评论
为什么被折叠?



