先立个flag,争取每周一篇。
之后所有代码为C++
用法 | 含义 |
---|---|
%a(%A) | 浮点数、十六进制数字和p-(P-)记数法(C99) |
%c | 字符 |
%d | 有符号十进制整数 |
%f | 浮点数(包括float和double) |
%e(%E) | 浮点数指数输出[e-(E-)记数法] |
%g(%G) | 浮点数不显无意义的零"0" |
%i | 有符号十进制整数(与%d相同) |
%u | 无符号十进制整数 |
%o | 八进制整数 e.g. 0123 |
%x(%X) | 十六进制整数0f(0F) e.g. 0x1234 |
%p | 指针 |
%s | 字符串 |
%n | 不会打印任何东西。 这个参数必须是一个有符号整数的指针,它存储它出现之前打印的所有字符数。(常用于格式化输出漏洞中,改写内存地址) |
%% | “%” |
还有一些奇技淫巧,参考文件<你可能不知道的printf用法>
一下联系均来自于https://www.dotcpp.com/
屏幕输出一行Hello, World!
#include
using namespace std;
int main(){
printf("%s","Hello, World!\n");
return 0;
}
练习输入输出,这里会输入三个整数,要求只输出第二个数字来!
#include
using namespace std;
int main(){
int a[3];
for (size_t i = 0; i < 3; i++)
{
cin >> a[i];
}
printf("%d\n",a[1]);
return 0;
}
依旧是输入三个整数,要求按照占8个字符的宽度,并且靠左对齐输出
#include
using namespace std;
int main(){
int a[3];
for (size_t i = 0; i < 3; i++)
{
cin >> a[i];
}
for (size_t i = 0; i < 3; i++)
{
printf("%-8d",a[i]);
}
printf("\n");
return 0;
}
输入一个单精度浮点数,输出保留三位小数输出
#include
using namespace std;
int main(){
float a=0.0;
cin >> a;
printf("%.3f\n",a);
return 0;
}
输入一个双精度浮点数,保留12位小数输出
#include
using namespace std;
int main(){
double a=0.0;
cin >> a;
printf("%.12f\n",a);
return 0;
}
输入一个字符,一个数字,一个单精度浮点数,一个双精度浮点数,按顺序输出它们四个且数字指定占4个字符宽靠右对齐,单精度浮点数保留2位小数,双精度保留12位小数,占一行输出、空格分隔
#include
using namespace std;
int main(){
char c;
int i;
float f;
double d;
cin >> c >> i >> f >> d;
printf("%c %4d %.2f %.12f\n",c,i,f,d);
return 0;
}
输入一个双精度浮点数,输出这个浮点数的%f结果、保留5位小数的结果、%e、%g格式的结果
#include
using namespace std;
int main(){
double a;
cin >> a ;
printf("%f\n",a);
printf("%.5f\n",a);
printf("%e\n",a);
printf("%g\n",a);
return 0;
}
输入一个字符,输出由这个字符组成等腰三角形底为5个,高为3个。
#include
using namespace std;
int main(){
char a;
cin >> a ;
printf(" %c\n",a);
printf(" %c%c%c\n",a,a,a);
printf("%c%c%c%c%c\n",a,a,a,a,a);
return 0;
}
给定一个字符,用它构造一个对角线长5个字符,倾斜放置的菱形。
#include
using namespace std;
int main(){
char a;
cin >> a ;
printf(" %c\n",a);
printf(" %c%c%c\n",a,a,a);
printf("%c%c%c%c%c\n",a,a,a,a,a);
printf(" %c%c%c\n",a,a,a);
printf(" %c\n",a);
return 0;
}
超级玛丽是一个非常经典的游戏。请你用字符画的形式输出超级玛丽中的一个场景。
#include
using namespace std;
int main(){
puts(" ******** ");
puts(" ************ ");
puts(" ####....#. ");
puts(" #..###.....##.... ");
puts(" ###.......###### ### ### ### ### ");
puts(" ........... #...# #...# #...# #...# ");
puts(" ##*####### #.#.# #.#.# #.#.# #.#.# ");
puts(" ####*******###### #.#.# #.#.# #.#.# #.#.# ");
puts(" ...#***.****.*###.... #...# #...# #...# #...# ");
puts(" ....**********##..... ### ### ### ### ");
puts(" ....**** *****.... ");
puts(" #### #### ");
puts(" ###### ###### ");
puts("############################################################## ################################## ");
puts("#...#......#.##...#......#.##...#......#.##------------------# #...#......#.##------------------# ");
puts("###########################################------------------# ###############------------------#");
puts("#..#....#....##..#....#....##..#....#....##################### #..#....#....#####################");
puts("########################################## #----------# ############## #----------# ");
puts("#.....#......##.....#......##.....#......# #----------# #.....#......# #----------# ");
puts("########################################## #----------# ############## #----------# ");
puts("#.#..#....#..##.#..#....#..##.#..#....#..# #----------# #.#..#....#..# #----------# ");
puts("########################################## ############ ############## ############ ");
return 0;
}