#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include <string.h>
#include <windows.h>
#include <stdlib.h>
#include <time.h>
1. 编写程序数一下 1到 100 的所有整数中出现多少个数字9
9 19 29 39 49 59 69 79 89 99
90 91 92 93 .. 99
int main()
{
int count = 0;
int i = 0;
for (i = 1;i <= 100;i++)
{
if (i % 10 == 9)
count++;
if (i / 10 == 9)
count++;
}
printf("%d\n", count);
return 0;
}
2.计算1/1 - 1/2 + 1/3 - 1/4 + 1/5 ... + 1/99 - 1/100的值,打印出结果
int main()
{
int i = 0;
double sum = 0.0;
for (i = 1; i <= 100; i++)
{
if (i % 2 == 0)
sum -= 1.0 / i;
else
sum += 1.0 / i;
}
printf("%lf\n", sum);
return 0;
}
int main()
{
int i = 0;
double sum = 0.0;
int flag = 1;
for (i = 1; i <= 100; i++)
{
sum += flag*1.0 / i;
flag = -flag;
}
printf("%lf\n", sum);
return 0;
}
求10个整数中最大值
int main()
{
int arr[10] = { 1,2,3,4,5,6,7,8,9,10 };
int max = arr[0]; //int max = 0; 当是负数的时候就不行了
int i = 0;
for (i = 0; i < 10;i++)
{
if (arr[i] > max)
{
max = arr[i];
}
}
printf("%d\n", max);
return 0;
}
在屏幕上输出9+9乘法口诀表
1*1=1
2*1=2 2*2=4
3*1=3 3*2=6 3*3=9
...
int main()
{
int i = 1;
//行数
for (i = 1;i <= 9;i++)
{
int j = 0;
for (j = 1;j <= i;j++)
{
printf("%d*%d=%-2d ", i, j, i * j);
}
printf("\n");
}
return 0;
}
函数输出两个数字的方法
void test(int arr[])
{
arr[0] = 1;
arr[1] = 2;
}
int main()
{
int arr[10] = { 0 };
test(arr);
return 0;
}
void test(int *pa,int *pb)
{
*pa = 1;
*pb = 2;
}
int main()
{
int a = 0;
int b = 0;
test(&a,&b);
return 0;
}
自定义乘法口诀表
void print_table(int n)
{
int i = 0;
//行
for (i = 1;i <= n; i++)
{
//打印一行
int j = 0;
for (j = 1;j <= i;j++)
{
printf("%d*%d=%d", i, j, i * j);
}
printf("\n");
}
}
int main()
{
int n = 0;
scanf("%d", &n);//9
//函数
print_table(n);
return 0;
}
颠倒输出字符串
//循环的方法:
int my_strlen(char* str)
{
int count = 0;
while (*str != '\0')
{
count++;
str++;
}
return count;
}
//void reverse_string(char* str)
//{
// int left = 0;
// int right = my_strlen(str) - 1;
//
// while (left < right)
// {
// char tmp = str[left];
// str[left] = str[right];
// str[right] = tmp;
// left++;
// right--;
// }
//}
void reverse_string(char* str)
{
int left = 0;
int right = my_strlen(str) - 1; //下标
while (left < right)
{
char tmp = *(str + left); //str(letf);
*(str + left) = *(str + right);
*(str + right) = tmp;
left++;
right--;
}
}
int main()
{
char arr[] = "abcdef";
reverse_string(arr);//数组名arr是数组arr首元素的地址
printf("%s\n", arr);//fedcba
return 0;
}
//递归的方法
int my_strlen(char* str)
{
int count = 0;
while (*str != '\0')
{
str++;
count++;
}
return count;
}
void reverse_string(char* str)
{
char tmp = *str; //1
int len = my_strlen(str);
*str = *(str + len - 1); //2
*(str + len - 1) = '\0'; //3
//判断条件
if (my_strlen(str + 1) >= 2)
{
reverse_string(str + 1); //4
}
*(str + len - 1) = tmp; //5
}
int main()
{
char arr[] = "abcdef";
reverse_string(arr); //数组名arr是数组arr首元素的地址
printf("%s\n", arr); //fedcba
return 0;
}
输入1729 结果为1+7+2+9=19:
int DigitSum(int n)
{
if (n > 9)
{
return DigitSum(n / 10) + n % 10;
}
else
{
return n;
}
}
int main()
{
int num = 1729;
int sum = DigitSum(num);
printf("%d\n", sum);
return 0;
}
编写一个函数实现n的k次方,使用递归实现
double Pow(int n, int k)
{
if (k == 0)
return 1.0;
else if (k > 0)
return n * Pow(n, k - 1);
else
return 1.0 / (Pow(n, -k));
}
int main()
{
int n = 0;
int k = 0;
scanf("%d %d", &n, &k);
double ret = Pow(n, k);
printf("%lf", ret);
return 0;
}