//求1/1-1/2+1/3....+1/99-1/100的和
// 第一种写法
#include<stdio.h>
int main() {
int frequency = 0;
double sum = 0.0;
for (frequency = 1; frequency <= 100; frequency++) {
if (frequency % 2 == 0) {
sum -= 1.0 / frequency;
}else{
sum += 1.0 / frequency;
}
}
printf("总和为=%lf\n", sum);
return 0;
}
//第二种写法
#include<stdio.h>
int main() {
int frequency = 0;
double sum = 0.0;
int flag = 1;
for (frequency = 1; frequency <= 100; frequency++) {
sum += flag*1.0 / frequency;
flag = -flag;
}
printf("%lf", sum);
return 0;
}
//求十个整数最大值
#include<stdio.h>
int main() {
int group[10] = { -1,5, 3, 2, 1, 4, 6, 8, 9, -3 };
int max = group[0];
int frequency = 0;
for (frequency = 1; frequency < 10; frequency++) {
if (group[frequency] > max) {
max = group[frequency];
}
}
printf("最大值=%d\n", max);
return 0;
}
//乘法口诀表
#include<stdio.h>
int main()
{
int number_1 = 1;
int number_2 = 1;
for (number_1 = 1; number_1 <= 9; number_1++) {
for (number_2 = 1; number_2 <= 9; number_2++) {
printf("%d*%d=%-2d ", number_1, number_2, number_1 * number_2);// %2d表示输入2位整型数,不够两位右对齐; -2d左对齐
// %5.2f则表示宽度为5的浮点数,整数位3为,小数位2位,不够5则右对齐 %5s则表示位5个字符的字符串
}
printf("\n");
}
return 0;
}
//字符串逆序(非递归实现)
#include<stdio.h>
#include<string.h>
void Swap(char* group) {
int left = 0;
int right = strlen(group) - 1;
/*
strlen模拟实现
int my_strlen(char*group){
int count = 0;
while(*group != '/0'){
count++;
group++;
}
return count;
} */
while (left < right) {
char swap = group[left];// *(group + left)
group[left] = group[right];// *(gorup + left) = *(group + right);
group[right] = swap;
left++;
right--;
}
}
int main() {
char group[] = "helloworld";
Swap(group);
printf("%s\n", group);
return 0;
}
//递归实现
#include<stdio.h>
#include<string.h>
void Swap(char* group) {
char first_number = *group;//第一步
int right = strlen(group) - 1;
*group = *(group + right);//第二步
*(group + right) = '\0';//第三步
if (strlen(group + 1) >= 2) {
Swap(group + 1);
}
*(group + right) = first_number;
}
int main() {
char group[] = "helloworlld";
Swap(group);
printf("%s\n", group);
return 0;
}
/*------------ - 三子棋实现(还可以优化)<