gdpu c语言程序与设计 实验6

Tips:代码不一定最优解,但一般能懂(可能吧),用的是VS2022。

填空题部分由于它不给答案,我也不知道我有没有做对,你可以在编译器输入。

1.两电阻并联求阻值

代码

#include <stdio.h>
int main()
{
	float a=0, b=0,c=0;
	scanf("%f %f", &a, &b);
	c = a * b / (a + b);
	printf("%.2f", c);
	return 0;
}

思路:不要用题目给的那公式,并联电阻“鸡在河上飞”直接求。

2.数列中俩数之差最大

代码

#include <stdio.h>
int main()
{
	int n = 0;
	float max=0,min=0,temp=0;
	scanf("%d", &n);
	float arr[100] = { 0 };
	for (int i = 0; i < n; i++)
	{
		scanf("%f", &arr[i]);
	}
	for (int i = 0; i < n - 1; i++)
	{
		for (int j = 0; j < n-1-i; j++)
		{
			if (arr[j] > arr[j + 1])
			{
				temp = arr[j];
				arr[j] = arr[j + 1];
				arr[j + 1] = temp;
				
			}
		}
	}
	max = arr[n-1];
	min = arr[0];
	printf("%.2f", max - min);

	return 0;

}

思路:这道题不用数组我想不到怎么做,但数组又是后面学的(bushi?)。将数放进数组后进行排序然后就能找到最大值和最小值。

3.封闭曲线分割平面

代码

#include <stdio.h>
int main()
{
	int n,m = 2;
	scanf("%d", &n);
	for (int i = 1; i <= n; i++)
	{
		m += 2 * (i - 1);
	}
	printf("%d", m);
	return 0;
}

思路:别看这题那么长,其实有用的就是最后的公式,设初始值为2,然后循环加到输入的平面个数。(所以这题为啥做得比上题简单???

4.简单字符加密

代码

#include <stdio.h>
int main()
{
	char ch;
	char arr[60] = { 0 };
	int i, cnt = 0;
	do
	{
		ch = getchar();
		arr[cnt++] = ch;

	} while (ch != '\n');
	for (i = 0; i < cnt; i++)
	{
		if (arr[i] <= 87 && arr[i] >= 65)//大写字母转小写加3
			arr[i] = arr[i] + 35;
		else if (arr[i] >= 97 && arr[i] <= 119)//小写字母转大写加3
			arr[i] = arr[i] - 29;
		else if (arr[i] > 119 && arr[i] <= 122)//xyz转大写再变ABC
			arr[i] = arr[i] - 55;
		else if (arr[i] >= 88 && arr[i] <= 90)//XYZ变abc
			arr[i] += 9;
		if (48 <= arr[i] && arr[i] <= 57)
		{
			if (arr[i] < 53)
				arr[i] += 5;
			else if (arr[i] >= 53)
				arr[i] -= 5;
		}
printf("%c", arr[i]);

	}
	

	return 0;
}

思路:这题要用到的东西很多,ascll码表,输入、输出字符串,将字符串放进数组后再让每一个字符进行转化。

5.数学竞赛猜测

代码:

#include <stdio.h>

	int main()
	{
		int a = 0, b = 0, c = 0, d = 0;
		printf("abcd\n");
		for (a = 1; a <=4; a++)
		{
			for (b = 1; b <=4 ; b++)
			{
				for (c = 1; c <=4; c++)
				{
					
					for (d = 1; d <= 4; d++)
					{
						if (((c == 1) && !(a == 3) || !(c == 1) && (a == 3))
							&& ((b == 1) && !(d == 4) || !(b == 1) && (d == 4))
							&& ((d == 2) && !(c == 3) || !(d == 2) && (c == 3)))
						{
							if (a != b && a != c && a != d && b != c && b != d && c != d)
							{
								printf("%d%d%d%d", a, b, c, d);

							}
						}
					}
				}
			}
		}
		return 0;
	}

思路:题目提示了要用四重循环进行枚举,还给了相应的条件,那我们可以从这里下手,记住甲乙丙三个说的话都是成立的,但是只对一半。

捷径:直接printf(“3142“)

  • 7
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值