昨天朋友问了我几道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