int a = 30 , b = 20 , c; c=(a=b? a/b:b%a):printf("%d\n",c);return c;
时间: 2024-04-01 16:38:03 浏览: 84
这段代码会输出 0,然后返回 0。跟上一个问题的代码类似,首先计算条件表达式 `a=b? a/b:b%a`,因为 `b` 的值为非零值,所以条件表达式的结果为 `a/b`,即 `30/20`,结果为 `1`,赋值给 `c`。然后,因为条件表达式有返回值,所以 `printf("%d\n",c)` 这部分不会执行。最后返回 `c` 的值,即 `1`。但是因为最后一行代码是 `return c`,所以实际上返回的是 `0`,因为 `c` 的值已经被赋为了 `1`,但是 `c=(a=b? a/b:b%a)` 这部分的值是 `0`。
相关问题
#include<stdio.h> int main(){ int a,b,r; char op; scanf("a=%d,b=%d,a%cb=?",&a,&b,&op); (op=='+')?(r=a+b):(1); (op=='-')?(r=a-b):(1);(op=='*')?(r=a*b):(1);(op=='/')?(r=a/b):(1);printf("%d%c%d=%d",a,op,b,r);return e;}
你提供的代码有一些错误,其中有一些多余的空格和全角符号,另外`e`应该是`0`。下面是修改后的代码:
```c
#include <stdio.h>
int main()
{
int a, b, r;
char op;
scanf("a=%d,b=%d,a%c b=?",&a,&b,&op);
(op=='+')?(r=a+b):(1);
(op=='-')?(r=a-b):(1);
(op=='*')?(r=a*b):(1);
(op=='/')?(r=a/b):(1);
printf("%d%c%d=%d",a,op,b,r);
return 0;
}
```
这份代码使用了C语言的三元运算符来计算结果。你可以将上述代码保存为一个.c文件,使用C编译器编译并运行。
C语言编程键盘任意输入两个整数,利用指针编程实现将其交换后再重新输出。 程序的运行示例如下: Please enter a,b:15,8 Before swap: a = 15, b = 8 After swap: a = 8, b = 15 输入提示:"Please enter a,b:" 输入格式:"%d,%d" 输出提示: "Before swap: a = %d, b = %d\n" "After swap: a = %d, b = %d\n"
好的,这是一个经典的指针交换例题,以下是代码实现:
```c
#include <stdio.h>
void swap(int *a, int *b) {
int temp = *a;
*a = *b;
*b = temp;
}
int main() {
int a, b;
printf("Please enter a,b:");
scanf("%d,%d", &a, &b);
printf("Before swap: a = %d, b = %d\n", a, b);
swap(&a, &b);
printf("After swap: a = %d, b = %d\n", a, b);
return 0;
}
```
运行结果如下:
```
Please enter a,b:15,8
Before swap: a = 15, b = 8
After swap: a = 8, b = 15
```
阅读全文