本文共 1374 字,大约阅读时间需要 4 分钟。
1.将数组A中的内容和数组B中的内容进行交换。(数组一样大)这个编程的思路和前面交换两个整数思路一样,编程采用位异或进行交换。
#include#include int main(){ int i = 0; int a[] = { 1, 12, 23, 34, 45 }; int b[] = { 2, 43, 54, 56, 67 }; int top = sizeof(a) / sizeof(a[0]); for (; i < top; i++) { a[i] = a[i] ^ b[i]; b[i] = a[i] ^ b[i]; a[i] = a[i] ^ b[i]; printf("%d %d\n", a[i], b[i]); } printf("\n"); system("pause"); return 0;}
2. 计算1/1-1/2+1/3-1/4+1/5 ⋯⋯ + 1/99 - 1/100 的值。
方法1:使用函数pow表示一个数的幂次方,让正负得以实现,得到结果为0.688172.
#include方法二,直接使用正负让编程优化。#include #include int main(){ int i=1; double sum = 0.0,n,m; for (; i <= 100; i++) { n = pow((-1), i + 1);使用pow计算1的i幂次方. m = 1.0 / i; sum = sum + (n*m); } printf("%f", sum); system("pause"); return 0;}
#include3. 编写程序数一下 1到 100 的所有整数中出现多少次数字9。#include int main(){ int flag = 1; int i = 1; double sum = 0.0; for (; i <= 100; i++) { sum = sum + (1.0 * flag) / i; flag = -flag;//1和-1交替。 } printf("%f", sum); system("pause"); return 0;}
#include#include int main(){ int i = 0; int n = 0; for (i = 0; i <= 100; i++) { if (i % 10 == 9)//判断个位出现9 { n++; printf("%d\n", i); } if (i / 10 == 9)//判断十位出现9 { n++; printf("%d\n", i); } } printf("出现9的次数 %d\n", n); system("pause"); return 0;}
注意:不能用逻辑或来判断if (i%10==9||i/10==9)//第一个判断个位数是9,第二个判断十位数是9.这样99只判断了一次,结果为19.