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
来源
时间限制: 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;
}