循环结构作业体悟

一、

 原来这里的i是int类型,本以为int可以隐式转化为float,但是输出的temp==0

这是因为,int 和int 类型运算结果就是int类型,已经保留了0,现在float temp=该数,即temp=0.000000

所以要想转化,要保证运算式子中就有float类型

int main()
{
	//1.	输入正整数n, 求1+1 / 2+1 / 3+⋯⋯+1 / n
	int n;
	float sum = 1.0;
	scanf("%d", &n);
	for (float i = 2; i < n+1; i++)
	{
		float temp = 1 / i;
		sum += temp;
		//printf("%f", temp);
	}
	printf("%f", sum);

	system("pause");
	return 0;
}

二、

	//2.	输入正整数n,求1-1/3+1/5-1/7+⋯⋯
	int n;
	float sum = 1.0;
	scanf("%d", &n);
	float sign = 1.0;
	for (float i = 2; i < n+1; i++)
	{
		sign *= (-1);
		float temp1 = 2*i-1;
		float temp2 = sign/temp1;
		sum += temp2;
		//printf("%f", temp2);
	}
	printf("%f", sum);

	system("pause");
	return 0;

三、

//3.	输入正整数n,进而输入n个整数,计算其中的奇(偶)数之和。
	int n;
	printf("总共多少数?");
	scanf("%d", &n);
	int* p =(int*)malloc(sizeof(int)*n);//动态分配内存
	printf("输入这些数:\n");
	for (int i = 0; i < n ; i++)
	{
		scanf("%d", &p[i]);//p[i]=*(ps+i-1)
		//p为数组首元素地址,可以直接当成数组名使用
	}
	int ji = 0;
	int ou = 0;
	for (int  i = 0; i < n; i++)
	{
		if (p[i]%2==0)
		{
			ou += p[i];
		}
		else
		{
			ji += p[i];
		}
	}
	printf("%d,%d", ji, ou);
	free(p);
	system("pause");
	return 0;

四、

int main()
{
	//4.输入一个整数,从最低位位开始逐位输出它的各位数字
	long  n;
	scanf("%d", &n);
	long a;
	a = n;
	int count=1;
	do
	{
		a /= 10;
		count++;
	} while (a>10);

	int* p = (int*)malloc(sizeof(int)*count);//动态分配一段内存
	for (int i = 0; i <=count; i++)
	{
		p[i] = n % 10;
		n /= 10;
	}
	printf("%d\n", count);
	for (int i = 0; i < count; i++)
	{
		printf("%d ", p[i]);
	}
	system("pause");
	return 0;
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值