正文开始:
目录
一、经典垃圾代码
🍎首先先看一个经典的例子:
#include <stdio.h>
int main()
{
int i = 1;
int ret = (++i)+(++i)+(++i);
printf("ret = %d\n", ret);
return 0;
}
二 、虾仁猪心
#include <stdio.h>
int i;
int main()
{
i--;
if (i > sizeof(i))
{
printf(">\n");
}
else
{
printf("<\n");
}
return 0;
}
三、X形图案
🍎问题描述:
🍭从键盘输入一个整数比如5,6等等。
🍿输出样式:
* *
* *
*
* *
* *
#include <stdio.h>
int main()
{
int n = 0;
while(scanf("%d", &n) != EOF)
{
for(int i=0; i<n; i++) //外循环为行
{
for(int j=0; j<n; j++) //内循环为列
{
if(i == j || i+j == n-1)
//最关键的地方,正斜线为[i][i]处是*, 反斜杠为[i][n-1-j]处是*,一行打印1个或2个*
printf("*");
else
printf(" ");
}
printf("\n"); //打印完一行,换行
}
}
return 0;
}
四、获得月份天数
#include<stdio.h>
int fun(int y)
{
return ((y % 4 == 0 && y % 100 != 0) || y % 400 == 0);
}
int main()
{
int y = 0;
int m = 0;
int d = 0;
int days[13] = { 0,31,28,31,30,31,30,31,31,30,31,30,31 };
while (scanf("%d%d", &y, &m) == 2)
{
int d = days[m];
if (fun(y) == 1 && m == 2)
{
d++;
}
printf("%d\n", d);
}
return 0;
}
五、逆序输出一个字符串的内容
#include <stdio.h>
#include <string.h>
int main()
{
char str1[100];
char str2[100];
int a, i;
gets(str1);
a = strlen(str1);
for (i = 0; i < a; i++)
{
str2[i] = str1[a - 1 - i];
}
str2[i] = 0;
printf("%s", str2);
}
六、计算求和
🍔🍔代码实现:
#include<stdio.h>
int main()
{
int a = 0;
int n = 0;
int i = 0;
int sum = 0;
int tmp = 0;
scanf("%d%d", &a, &n);
for(i=0; i<n; i++)
{
tmp = tmp*10+a;
sum += tmp;
}
printf("%d\n", sum);
return 0;
}
七、打印菱形
🍎问题描述:打印如下图形,这里只是给大家参考一下这个菱形图片并不是要打印这样的菱形,具体输出结果往下翻翻:
#include<stdio.h>
int main()
{
char str[] = " "; //定义为空
int i = 0, j = 0;
for (i = (strlen(str) / 2), j = (strlen(str) / 2); i >= 0 && j <= strlen(str); i--, j++)
{
str[i] = '*';
str[j] = '*';
printf("%s\n", str);
}
for (i = 0, j = (strlen(str) - 1); i < (strlen(str) / 2) && j >= (strlen(str) / 2); i++, j--)
{
str[i] = ' ';
str[j] = ' ';
printf("%s\n", str);
}
}
🌮🌮代码解读:这个方法非常容易理解,我们要打印的是上下对称的菱形,我们可以选择从中间开始打印,第一个for循环我们打印*,第二个for循环我们打印空格:
⛵⛵输出结果: