您的位置:首页 > 编程语言 > C语言/C++

厦大C语言上机 1489 变与不变

2018-01-14 11:26 253 查看
1489.变与不变

时间限制: 1000 MS          内存限制: 65536 K

        

提交数: 494 (0 users)          通过数: 285 (277 users)

问题描述

编写下列函数

void change(int *a,int *b,int flag);

根据flag的值对a、b进行处理。当flag为正数时,对a、b指向的变量求绝对值; 当flag为0时, a、b指向变量值不变; 当flag为负数时,交换a、b指向的变量的值。

输入格式

第一行为数据的组数n

第二行为三个整数,分别为a b flag

输出格式

输出a、b指向变量的值,用一个空格隔开

样例输入

3

-1 2 3

-1 2 -3

-1 2 0

样例输出

1 2

2 -1

-1 2

来源
xmu

#include <stdio.h>

void change(int *a, int *b, int flag)
{
if (flag > 0)
{
*a = *a > 0 ? *a : -*a;
*b = *b > 0 ? *b : -*b;
}
else if (flag < 0)
{
int temp = *a;
*a = *b;
*b = temp;
}
}

int main()
{
int n, a, b, flag;

scanf("%d", &n);
while (n--)
{
scanf("%d %d %d", &a, &b, &flag);
change(&a, &b, flag);
printf("%d %d\n", a, b);
}

return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: