练习题目1

1>给定两个整形变量的值,将两个值的内容进行交换.
有两个整形变量x、y,现要交换x和y中存放的值.若两值相等,直接输出.若不相等,可以新建一个中间变量来交换两值.
代码如下:

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
int main(void){
 int x = 0, y = 0;
 printf("请输入两个整数:\n");
 scanf("%d %d", &x, &y);
 if (x == y){
  printf("交换后:x=%d y=%d\n", x, y);
 }
 else{
  int t = 0;
  t = x;
  x = y;
  y = t;
  printf("交换后:x=%d y=%d\n", x, y);
 }
 system("pause");
 return 0;
}

在这里插入图片描述
2>不允许创建临时变量,交换两个数的内容.
有两个整形变量x,y,现要在不允许创建临时变量的情况下交换两值.
若两值相等,直接输出.若不相等,可以利用数学加减法来交换两值.
代码如下:

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
int main(void){
 int x = 0, y = 0;
 printf("请输入两个整数\n ");
 scanf("%d %d", &x, &y);
 if (x == y){
  printf("交换后:x=%d y=%d\n", x, y);
 }
 else{
  x = x + y;
  y = x - y;
  x = x - y;
  printf("交换后:x=%d y=%d\n", x, y);
 }
 system("pause");
 return 0;
}

在这里插入图片描述
3>求10个整数中最大值
给10个值,放入数组中,先选第一个值赋给新建变量max,然后依次将max与所有值进行比较.遇到比max大的值就赋值给max,遇到比max小的不进行赋值,进行下一次比较.全部比较结束后,输出max的值,即为最大值.
代码如下:

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
int Compare(int a[]);
int main(void){
 int x = 0;
 int a[] = { 0 };
 for (int i = 0; i < 10; ++i){
  scanf("%d", &x);
   a[i] = x;
 }
 int max = Compare(a);
 printf("%d\n", max);
 system("pause");
 return 0;
}
//找最大值
int Compare(int a[]){
 int max = 0;
 max = a[0];
 for (int i = 0; i < 10;++i){
  if (a[i]>max){
   max = a[i];
  }
 }
 return max;
}

在这里插入图片描述
4>将三个数按从大到小输出
利用if-else语句和条件运算符
代码如下:

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
int main(void){
 int x = 0, y = 0, z = 0;
 scanf("%d %d %d", &x, &y, &z);
 if (x > y){
  if (x > z){
   printf("%d ", x);
   printf("%d ", (y > z) ? y : z);
   printf("%d\n", (y < z) ? y : z);
  }
  else{
   printf("%d %d %d", z,x,y);
  }
 }
  else {
   if (y>z){
    printf("%d ", y);
    printf("%d ", (x > z) ? x : z);
    printf("%d\n", (x < z) ? x : z);
   }
   else{
      printf("%d %d %d", z,y,x);
   }
  }
 system("pause");
 return 0;
}

在这里插入图片描述
5>求两个数的最大公约数
利用辗转相除法.第一步将两个数分别赋给新建变量x、y,将x%y的值赋给新建变量z.第二步将y的值赋给x,z的值赋给y,x%y的值赋给z.若z的值为0,则输出y,此时y就是两数的最大公约数.若z的值不为0,继续执行第二步,直至z的值为0.
代码如下:

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
int main(void){
 int x=0, y=0;
 scanf("%d %d", &x, &y);
 int z = 0;
 z = x%y;
 while (z != 0){
  x = y;
  y = z;
  z = x%y;
 }
 printf("%d\n", y);
 system("pause");
 return 0;
}

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_44779696/article/details/88641721