初识C语言时一些简单的小程序(三))

一入代码深似海,从此妹纸是路人,今天为大家带来的是初始C语言时简单小程序的第三部分.

 

 

(一)将数组A中的内容和数组B中的内容进行交换。(数组一样大)

int main(){
	int a[5] = { 1, 2, 3, 4, 5 };
	int b[5] = { 6, 7, 8, 9, 10 };//定义两个相同大小的数组a,b.
	int Exnumber = 0;//交换站,或者说上篇博客中说到的篮子C
	int i = 0;
	printf("数组a内容为:\n");//循环打印输出数组a
	for (i = 0; i < 5; i++){
		printf("%d ", a[i]);
	}
	printf("\n");
	printf("数组b内容为:\n");//循环打印输出数组b
	for (i = 0; i < 5; i++){
		printf("%d ", b[i]);
	}
	printf("\n");//交换开始
	for (i = 0; i < 5; i++){
		Exnumber = a[i];
		a[i] = b[i];
		b[i] = Exnumber;
	}//答应交换后的数组a.b
	printf("交换后数组a内容为:\n");
	for (i = 0; i < 5; i++){
		printf("%d ", a[i]);
	}
	printf("\n");
	printf("交换后数组b内容为:\n");
	for (i = 0; i < 5; i++){
		printf("%d ", b[i]);
	}
	printf("\n");
	system("pause");
	return 0;
}

交换两个相同大小数组中的值,其关键点在于:

1)如何输出数组:这里用到循环,无论是值的交换还是值的输出,使用简单的for循环完成要求即可

2)交换:在第一篇博客中有提到两个值的交换,原理相似,此处不再多提.

 

 

(二))计算1/1-1/2+1/3-1/4+1/5 …… + 1/99 - 1/100 的值。

看到这个题目首先要想到,如何实现+,-的替换.

如果说一直按照+,-题目所呈现的来进行编程,会发现难度很大.那么全部看为+,+(-1)*number.这样就简化了逻辑.

引入:如何在C语言中表示一个数的平方呢?

如:2的平方   sum = pow ( 2 , 2 );  或者 2的3次方  sum = pow ( 2 , 3 )  当然,引入不要忘了带上头文件math.h

int main(){
	int i = 0;
	float sum = 0;//定义float类型方便存储计算值
	for (i = 1; i < 100; i++){
		sum = sum + (pow(-1, (i + 1)) / i);//(pow(-1, (i + 1))表示分子正负的变化,方便加减
	}
	printf("%f", sum);
	system("pause");
	return 0;
}

难点:

1)如何依次表示+ ,-,+,-,+,-.这里转化为全+即可,加上一个-1(number),用(-1)来控制-的出现,完成逻辑.

2)sum记录值时因为分子是一个较长的表达式,这里需要注意括号的书写,防止遗漏

 

(三)编写程序数一下 1到 100 的所有整数中出现多少次数字9

int main(){
	int i = 0;
	int sum = 0;
	for (i = 0; i < 100; i++){
		if ((i + 1) % 10 == 0){
			printf("%d\n", i);//这里打印的是i+1能够整除10的数
			sum++;
		}
		if ((i > 89)&&(i < 99)){//
			printf("%d\n", i);//这里打印的是十位为9的数
			sum++;
		}
	}
	printf("%d\n", sum);
	system("pause");
	return 0;
}

难点:

判断1~100数字9的出现次数.其只能出现在个位或者十位,则有

1)如果数字i个位是9,十位不是9,则(i+1)%10 == 0,计数器sum++.便有了第一个判断条件.

2)如果数字i十位是9,个位不是9,那么计数器sum++;

但99这个数字满足两个条件,所以需要注意,否则会造成多加一次,影响结果的正确值.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值