两行C语言代码能做什么





昨天朋友问了我几道C语言程序题,而且据说老师要求代码不能与网上雷同(???)

本着纯属装B研究技术的态度,再加上之前看过一篇文章《一行Python能做什么!》,于是我想能不能用一行代码完成这些题(毕竟这些题是一些非常基础的问题)。

后来发现似乎不能,因为C语言不能在调用函数的同时声明变量,于是只好用两行代码来完成。

好了,废话不多说。翠花,上题:
在这里插入图片描述

答案:

第一题

#include<stdio.h>
#include<math.h>
void main()
{
    int a;
    printf("它的各个数字的立方和为:%.0f", (printf("请输入一个四位整数:"), scanf("%d", &a), pow(a%10, 3) + pow(a%100/10, 3) + pow(a%1000/100, 3) + pow(a/1000, 3)));
}
运行结果

在这里插入图片描述

第二题

#include<stdio.h>
void main()
{
    int a, b;
    printf("c=%d", (printf("a="), scanf("%d", &a), printf("b="), scanf("%d", &b), b%10*1000 + a/10*100 + b/10*10 + a%10));
}
运行结果

在这里插入图片描述

第三题

#include<stdio.h>
void main()
{
    int x;
    printf("y=%d", (printf("x="), scanf("%d", &x), x < 0 ? -1 : x == 0 ? 0 : 1));
}
运行结果

在这里插入图片描述

第四题

#include<stdio.h>
void main()
{
    int a;
    printf("%s是闰年", (printf("请输入一个年份:"), scanf("%d", &a), a%400==0 || (a%4==0 && a%100!=0) ? "" : "不") );
}
运行结果

在这里插入图片描述


总结

以上代码主要用到了逗号表达式和三元表达式。

逗号表达式

(表达式1, 表达式2, 表达式3,…表达式n)

括号中的表达式从左到右依次执行,且逗号表达式的值为最后一个表达式的返回值

三元表达式

条件表达式 ? 表达式1 : 表达式2

如果条件表达式为真,则执行表达式1,否则执行表达式2

猜你喜欢

转载自blog.csdn.net/qq_34802028/article/details/106373076