第七周作业

从键盘输入一个整数x,输出其平方根(为整数)。

若输入数大于1000或小于等于0,则输出0,并继续接受下一个输入直至小于等于1000。

(提示:使用求平方根函数sqrt需要包含<math.h>头文件)。


样例输入:

1200
-1300
900

样例输出:

0
0
30
//第一次写的如下
#include<stdio.h>
#include<math.h>
int main()
{
	int a,c;
	
	do
	{
		scanf_s("%d", &a);
		if (a > 1000 || a <= 0)
			printf("0\n");

	} while (a > 1000 || a <= 0);
	c = sqrt(a);
	printf("%d\n", c);
	return 0;
}
//本次重做如下
#define _CRT_SECURE_NO_WARNINGS

#include<stdio.h>
#include<math.h>

int main()
{
	int a[200];
	int i = 0;
	for (i = 0;; i++)
	{
        scanf("%d", &a[i]);
		if (a[i] > 1000 || a[i]<= 0)
			printf("0\n");
		else {
			printf("%d\n",(int) sqrt(a[i]));
//这里得强制转换为整数,不然好像输出不了结果,原因水平低,我不知道
			break;
		}
	}
	return 0;
}
//第二次写的是真滴烂,第一次绝对抄的,抄谁的忘记辽

从键盘输入3个整数(三个数取值均在闭区间 [1,10] ),

每读取一个值,程序打印出该值个数的英文星号(*)。

输入:3个整数,3行。

输出:3行星号。


样例输入:

1
2
3

样例输出:

*
**
***
//最开始写作业时写的代码,使用了循环,减少了去敲符号的时间,找到来源啦,是崔神的答案!!!
#include<stdio.h>

int main()
{
	int a,b,c,i;
	scanf_s("%d%d%d", &a, &b, &c);
	for (i = 0; i < a; i++)
		printf("*");
	printf("\n");
	for (i = 0; i < b; i++)
		printf("*");
	printf("\n");
	for (i = 0; i < c;i++)
		printf("*");
	printf("\n");
	return 0;
	}
//本次写的,虽然有点傻,但是cv一下也挺快的,思路清晰
#define _CRT_SECURE_NO_WARNINGS

#include<stdio.h>

int main()
{
	int a;
	int i = 0;
	while (i < 3)
	{
		scanf("%d", &a);
		i++;
		switch (a) 
		{
		case 1:printf("*\n"); break;
		case 2:printf("**\n"); break;
		case 3:printf("***\n"); break;
		case 4:printf("****\n"); break;
		case 5:printf("*****\n"); break;
		case 6:printf("******\n"); break;
		case 7:printf("*******\n"); break;
		case 8:printf("********\n"); break;
		case 9:printf("*********\n"); break;
		case 10:printf("**********\n"); break;

		}
	}

	return 0;
}

某个公司采用公用电话传递数据,数据是四位的整数,在传递过程中是加密的,加密规则如下:

1. 每位数字都用自身加5后的和除以10的余数代替,如1用6代替,8用3代替;如3768就转换为8213;

2. 再将第一步生成的数字的第一位和第四位交换,第二位和第三位交换。 如8213转换为3128,即为最终的加密密码。

编写程序完成数据的加密。输入:一个整数。输出:一个整数。


样例输入:

2233

样例输出:

8877
//第一次写的好傻,分解再加密
#include<stdio.h>

int main()
{
	int i,a, b, c, d,e;
	scanf_s("%d", &i);
	a = (i /1000 + 5)%10;
	b = (((i - i / 1000 * 1000) / 100) + 5) % 10;
	c = (((i - i / 100 * 100) / 10) + 5) % 10;
	d = (i - i / 10 * 10 + 5)%10;
	e = d * 1000 + c * 100 + b * 10 + a;
	printf("%d", e);

	return 0;
	}


//对比第一次写的,这次好像,更蠢!!!妄想写一个函数,我好蠢。。。。。。
#define _CRT_SECURE_NO_WARNINGS

#include<stdio.h>
swap(int n);
#include<math.h>

int main()
	{
	int n;
	scanf("%d", &n);
	int i = 0,c=0;
	int a = n,b;
	for (i = 0; i < 4; i++)
	{
		b = (a % 10 + 5);
		(int)c +=(int) pow(10, i) * b;
		a /= 10;
		
	}
	int d, e, f, g;
	d = c % 10;
	e = (c / 10) % 10;
	f = (c / 100) % 10;
	g = c / 1000;
	printf("%d%d%d%d\n", d,e,f,g);

		return 0;
	}

找出整数m到整数n (闭区间)之间的所有同构数(m<n)。

 说明:一个正整数x,如果是它平方数的尾部,则称x为同构数。例如,6是其平方数36的尾部,25是其平方数625的尾部,那么6和25都是同构数。

输入:m和n两个正整数,用空格分隔。

输出:连续输出同构数,数据间用空格分隔(最后一个同构数后面无空格)。


样例输入:

50 100

样例输出:

76
//第一次肯定不是我自己写的,绝对是去哪嫖来的(正经人谁写注释,可恶我还看不懂)
#include<stdio.h>
 int main() {
	int m, n, b=1;
	scanf("%d %d", &m, &n);
	for (; b < m / 10;) { b = b * 10; }//判断m的位数并给b
	for (int a = 0; m <= n; m++)
	 {//a是为了输出首尾无空格
		(m >= b && m <= b*10) ? (((m*m) % (b*10) == m) ? ((a == 0) ? printf("%d", m), a++ : printf(" %d", m)) : 0) : 0;//一句顶n句
		b = (m == b*10 && m != 1) ? b * 10 : b;
	}
	return 0;
}

//原创如下,感觉写得还行,夸夸我自己
#define _CRT_SECURE_NO_WARNINGS

#include<stdio.h>
#include<math.h>

int main()

{
	int m, n;
	scanf("%d%d", &m, &n);
	int cut=0,i, a, b;
	for (i = m; i <= n; i++)
	{
		a = i * i;
		b = i;
		int t;
//for循环来判断位数
		for (t = 0; b != 0; t++)
		{
			b /= 10;
		}
		if (i == a % (int)pow(10, t))
		{
			cut++;
			cut == 1 ? printf("%d", i) : printf(" %d", i);
		}
	}
	return 0;

}
//不愧是我崔神,写函数来做,函数就在另外一个专栏《崔神救我大计寄里》

编程判断任意一个正整数各位数字之和是奇数还是偶数。

如果和是奇数输出1,偶数输出0。


样例输入:

20211001

样例输出:

1
//第一次写的,这个简单,没得技巧,全是感情
#include<stdio.h>
int main()
{
	int a;
	int sum = 0;
	scanf_s("%d", &a);
	while(a != 0)
	{
		sum += a % 10;
		a = a / 10;
}
	if (sum % 2 == 0)
		printf("0");
	else
	printf("1");
	return 0;
}
//现在写的比第一次写的稍微简洁一丢丢
#define _CRT_SECURE_NO_WARNINGS

#include<stdio.h>

int main()

{
	int n,sum=0;
	scanf("%d", &n);
	for (; n != 0; )
	{
		sum += n % 10;
		n /=  10;

	}
	sum % 2 == 0 ? printf("0") : printf("1");
	return 0;
	
}

编程求以下级数前n项之和:

 s=1-1/3+1/5-1/7+1/9-1/11+1/13-1/15+.....

输入:一个正整数n

输出:前n项和的值


样例输入:

2

样例输出:

0.666667
//两次写的差不多,第一次写的就不放上来丢人啦
#define _CRT_SECURE_NO_WARNINGS

#include<stdio.h>
#include<math.h>

int main()
{
	int n;
	scanf("%d", &n);
	double s = 0;
	for (int i = 1; i <=n; i++)
	{
		
		s +=  pow(-1,i-1)/ (2 * i - 1);

		
	}
	printf("%lf", s);
}

编写程序,找出[m,n]范围内是7的倍数或带7的全部正整数。

其中,m和n为正整数。


样例输入:

1 20

样例输出:

7是7的倍数
7是带7的数
14是7的倍数
17是带7的数
//现在是晚上十点,还在图书馆en写,还有四天考试,西交的男人不哭。。

#define _CRT_SECURE_NO_WARNINGS

#include<stdio.h>

int main()
{
	int m, n,a;
	scanf("%d%d", &m, &n);
	int i;
	for (i = m; i <= n; i++)
	{
		a = i;
		if (i % 7 == 0)
		{
			printf("%d是7的倍数\n", i);
		}
		for (; a != 0;)
		{
			if (a % 10 == 7) { printf("%d是带7的数\n",i); break; }
			a /= 10;
		}
	}
	return 0;
}

若三个正整数a,b,c满足 a^2+b^2=c^2,则它们是一组勾股数。(^2表示平方,a^表示a的平方)。

编写程序,求给定区间[m,n]中的勾股数的数量(设一组勾股数满足a<b<c)。

例如[1,10]中的勾股数有(3,4,5)和(6,8,10),则[1,10]中勾股数的数量为2。

输入:正整数m,n,   空格分隔

输出:[m,n]中的勾股数的数量


样例输入:

1 100

样例输出:

52
//“我从未感觉如此神清气爽过”,一遍过,超happy!!!
//脑海中有那么一丝感觉,丝滑写下
#define _CRT_SECURE_NO_WARNINGS

#include<stdio.h>

int main()
{
	int m, n;
	scanf("%d%d", &m, &n);
	int cut = 0, i, j, k;
	for (i = m; i <= n - 2; i++)
	{
		for (j = i+1; j <= n - 1; j++)
		{
			for (k = j + 1; k <= n; k++)
			{
				if (i * i + j * j == k * k)
				{
					cut++;
					break;
				}
			}
		}
	}
	printf("%d", cut);
	return 0;

}

输入任意一个正整数,计算各位数字的平方和。

如:1234 则:计算1*1+2*2+3*3+4*4=30

输入:一个正整数

输出:平方和


样例输入:

8

样例输出:

64
//这题比较简单,没啥好说的,就是现在心情有点慌张,现在了怎么图书馆的人还不走呀!!!
//你们不走,我也不走,就en耗!!!
#define _CRT_SECURE_NO_WARNINGS

#include<stdio.h>

int main()
{
	int n;
	scanf("%d", &n);
	int sum = 0;
	for (; n != 0;)
	{
		sum += ((n % 10) * (n % 10));
		n /= 10;
	}
	printf("%d", sum);
	return 0;

}

编写程序检验由三边能否构成三角形,检验方法是任意两边和均要大于第三边。

输入:三边长度
输出:如果可以构成三角形,输出YES,否则输出ERROR DATA


样例输入:

1.5 2.5 3

样例输出:

YES
// 就这样吧,毁灭吧!烦死了!
#define _CRT_SECURE_NO_WARNINGS

#include<stdio.h>

int main()
{
	float a, b, c;
	scanf("%f%f%f", &a, &b, &c);
	if (a + b > c && a + c > b && b + c > a && a - b < c && a - c < b && b - c < a)
	{
		printf("YES");
	}
	else {
		printf("ERROR DATA");
	}
	return 0;
}

  • 10
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值