今日题目
1. 将数组A中的内容和数组B中的内容进行交换。(数组一样大)
2. 计算1/1-1/2+1/3-1/4+1/5 …… + 1/99 - 1/100 的值。
3. 编写程序数一下 1到 100 的所有整数中出现多少次数字9。
1. 将数组A中的内容和数组B中的内容进行交换。(数组一样大)
将两个一样大小数组的内容交换,本质是将数组的每一个值进行交换,和两个变量交换内容的方法是一样的
#include <stdio.h>
#include <stdlib.h>
int main() {
int arrA[10] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 0 };
int arrB[10] = { 2, 4, 6, 8, 0, 1, 3, 5, 7, 9 };
int arrA_len = sizeof(arrA) / sizeof(arrA[0]);
//交换数组中的每个位置的内容
for (int i = 0; i < arrA_len; ++i){
arrA[i] = arrA[i] + arrB[i];
arrB[i] = arrA[i] - arrB[i];
arrA[i] = arrA[i] - arrB[i];
}
//打印交换后的数组A的内容
printf("arrA[]= ");
for (int i = 0; i < arrA_len; ++i){
printf("%d", arrA[i]);
}
printf("\n");
//打印交换后的数组B的内容
printf("arrB[]= ");
for (int i = 0; i < arrA_len; ++i){
printf("%d", arrB[i]);
}
printf("\n");
system("pause");
return 0;
}
运行结果:
2. 计算1/1-1/2+1/3-1/4+1/5 …… + 1/99 - 1/100 的值。
仔细观察这个算式,会发现一个规律,分母是依次递增的,偶数位的数符号是“-”,奇数位的数符号位“+”,可以将所有正数加起来,所有附属加起来,最后把两者一加就是这个算式的值
#include <stdio.h>
#include <stdlib.h>
int main() {
double sum = 0;
double sum1 = 0;
double sum2 = 0;
int i = 0;
//偶数项相加赋给sum1
for (i = 1; i <= 100; i += 2){
sum1 += 1.0/i;
}
//奇数项相加赋给sum2
for (i = 2; i <= 100; i += 2){
sum2 += (-1.0/i);
}
sum = sum1 + sum2;
printf("%f\n", sum);
system("pause");
return 0;
}
运行结果:
3. 编写程序数一下 1到 100 的所有整数中出现多少次数字9。
1到100之间所有整数中有数字9的,包含个位数为9和十位数为9的两种情况,所以要考虑这两种情况
#include <stdio.h>
#include <stdlib.h>
int main() {
int count = 0;
int i = 0;
for (i = 1; i <= 100; ++i) {
//通过取余找出个位数为9的数字
if(i % 10 == 9) {
count++;
}
//通过除以10找出十位数为9的数字
if (i / 10 == 9) {
count++;
}
}
printf("count=%d\n", count);
system("pause");
return 0;
}
运行结果: