栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

DAY2作业介绍

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

DAY2作业介绍

C语言复习第二次作业

作业要求贴在下面:

1. 给定两个整形变量的值,将两个值的内容进行交换。
2. 不允许创建临时变量,交换两个数的内容(附加题)
3.求10 个整数中最大值。
4.将三个数按从大到小输出。
5.求两个数的最大公约数。

代码思想简介 给定两个整形变量的值,将两个值的内容进行交换。

通过创建临时变量实现数值交换

//给定两个整形变量的值,将两个值的内容进行交换。
#define _CRT_SECURE_NO_WARNINGS 1
#include
int main() 
{
	int a, b, c;
	printf("请输入第一个整形变量的值:n");
	printf("a=");
	scanf("%d", &a);
	printf("请输入第二个整形变量的值:n");
	printf("b=");
	scanf("%d", &b);
	c = a; a = b; b = c;
	printf("交换后两个整型变量的值分别为:na=%d,b=%dn",a,b);
	return 0;
}

测试结果

不允许创建临时变量,交换两个数的内容(附加题)

键盘输入两个变量a和b的值,通过a=a+b,b=a-b,a=a-b;即可实现不创建临时变量实现数值交换

//exchange values of two variables without temporary variable
#define _CRT_SECURE_NO_WARNINGS 1
#include
int main() 
{
	int a, b;
	printf("input a=");
	scanf("%d", &a);
	printf("n");
	printf("input b=");
	scanf("%d", &b);
	printf("n");
	a = a + b;
	b = a - b;
	a = a - b;
	printf("after exchange:na=%d,b=%d", a, b);
	return 0;
}
测试结果

求10 个整数中最大值。

创建一个max变量,通过for循环比较一遍,遇见大的值交换数值,最后打印max即可

//find the max between 10 integers
#define _CRT_SECURE_NO_WARNINGS 1
#include
int main() 
{
	int arr[10] = { 0 };
	int i,max;
	for (i = 0; i <= 9; i++) 
	{
		printf("please input integer-%d:",i+1);
		scanf("%d", &arr[i]);
		printf("n");
		if (i == 0)
			max = arr[i];
		else
			if (max <= arr[i])
				max = arr[i];
	}
	printf("the max integer is %dn", max);
	return 0;
}
测试结果

将三个数按从大到小输出。

通过键盘输入数组内容和数组长度,然后对数组调用rank函数将数组进行降序排列,最后在主函数里面打印即可。
rank函数算法为选择排序,每次遍历出数组中最大元素,定位位置后与数组第一位换值,之后从数组第二位循环下去直到结束。
最终代码不仅仅限于长度为3的数组。

//将三个数按从大到小输出。
#define _CRT_SECURE_NO_WARNINGS 1
#include
void rank(int arr[],int len) 
{
	int max, loc;
	int i, j;
	for (i=0;i<=len-1;i++) 
	{
		max = arr[i], loc = i;
		for (j =i+1;j<=len-1;j++ )
		{
			if (max < arr[j]) 
			{
				max = arr[j];
				loc = j;
			}
		}
		arr[loc] = arr[i];
		arr[i] = max;
	}
}
int main() 
{
	int len;
	printf("please input arr length(1~100):");
	scanf("%d", &len);
	printf("n");
	int i, j;
	int arr[100] = {0};
	for (i=0;i<=len-1;i++) 
	{
		printf("input arr[%d]:", i + 1);
		scanf("%d", &arr[i]);
		printf("n");
	}
	rank(arr, len);
	printf("descending output:n");
	for(j = 0; j <= len - 1; j++) 
	{
		printf("%d、", arr[j]);
	}
	return 0;
}
测试结果

求两个数的最大公约数。

先比较两个数的大小,把小的数作为for循环的终止符,让i从一开始循环,分别让N1、N2两个数对i进行求余运算,在结果都为零的情况下把i的值赋给max,循环结束后打印max

//求两个数的最大公约数
#define _CRT_SECURE_NO_WARNINGS 1
#include
int main()
{
	int N1, N2;
	int i, j, max;
	printf("please input N1:");
	scanf("%d", &N1);
	printf("n");
	printf("please input N2:");
	scanf("%d", &N2);
	printf("n");
	if (N1 < N2)
		j = N1;
	else
		j = N2;
	max = 1;
	for (i = 1; i <= j; i++) 
	{
		if (N1 % i == 0 && N2 % i == 0)
			max = i;
	}
	printf("the max factor is :%dn", max);
	return 0;
}
测试结果

结束语

一起加油,一起努力!!

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1001973.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号