1.计算1/1-1/2+1/3-1/4+1/5 …… + 1/99 - 1/100 的值。
(第一种方法:使用数学库中的pow函数,pow(a,b)函数是计算a的b次幂;使用for循环输出1-100的数字,用temp存放正负,用sum存放相加后的值。注意:由于计算的都是小数,所以应该用浮点型类型!)
#include
#include
#include
int main()
{
int i;
float sum = 0.0, temp = 0.0;
for (i = 1; i <= 100; i++)
{
temp = pow(-1, i + 1); //x的y次幂 -1的i+1次幂
sum = sum + temp * 1 / i;
}
printf("sum is %f\n", sum);
system("pause");
return 0;
}
第二种方法:
#include
#include
int main()
{
int n = 0;
double sum = 1.0;
int i = -1;
for (n = 2; n <=100; n++)
{
sum = sum + (double)1 / (n*i);
i = i*(-1);
}
printf("%lf", sum);
system("pause");
return 0;
}
3.交换两个数组的内容
#include
#include
#include
int main()
{
int arr1[] = { 1, 2, 3, 4 }, arr2[] = { 5, 6, 7, 8 };
int i=0;
for (i = 0; i < 4; i++)
{
int date;
date = arr1[i];
arr1[i] = arr2[i];
arr2[i] = date;
}
for (i = 0; i < 4; i++)
{
printf("arr1=%d", arr1[i]);
}
printf("\n");
for (i = 0; i < 4; i++)
{
prinf("arr2=%d", arr2[i]);
}
printf("\n");
system("pause");
return 0;
}
4.计算1-100中出现几次数字9
#include
#include
#include
int main()
{
int i=0;
int count=0; //使用count进行出现9的次数的累加。
printf("出现9的数字为:");
for (i = 0; i <= 100; i++)
{
if (i % 10 == 9) //每个个位上含有数字9的特征是:这个数字对10取模余数都是9。
{
count++;
printf("%3d", i);
}
if (i / 10 == 9) // 90-99的数字特征是每个数字除以9都等于9.
{
count++;
printf("%3d", i);
}
}
printf("count=%d\n", count);
system("pause");
return 0;
}
5.计算Sn=a+aa+aaa+aaaa+aaaaaa;这中类型的算式;例如Sn=2+22+222+2222+22222;
#define _CRT_SECURE_NO_WARNINGS 1
#include
#include
int main()
{
int x;
scanf("%d", &x);
int n = 0;
int sn = 0;
int i = 0;
for (i=0; i <5; i++) //一共需要加五个数字,循环进行五次
{
n = n * 10 + x; //每一次的计算的结果存在n中
sn += n; //将每次的结果累加存放再sn中
}
printf("%d\n", sn);
system("pause");
return 0;
}
6.用*打印一个菱形
#define _CRT_SECURE_NO_WARNINGS 1
#include
#include
int main()
int main()
{ // 第一部分:先打印空格 再打印* 第二部分:再打印空格 最后打印*
int i, j;
int line=0;
scanf("%d", &line);
//第一部分开始 :
for (i = 0; i <= line ; i++)
{
for (j = 0; j <= line - i ; j++)
{
printf(" ");
}
for (j = 1; j <=2 * i - 1; j++) // 空格数第一部分:数字递减例如 : 7 6 5 4 3 2 1
// 第二部分 数字递增从2开始输出 : 2 3 4 5 6 7
{ // * 第一部分从1开始 都是奇数输出 例如 1 3 5 7 9 11 13 到最大值line
// 第二部分从最大值减2开始输出 例如 11 9 7 5 3 1
printf("*");
}
printf("\n");
}
//第二部分开始:
for (i = 1; i <= line-1; i++)
{
for (j = 0; j <= i ; j++)// 2 4 6 8 10 ...
{
printf(" ");
}
for (j = 1; j <= (2*line-1) - 2 * i; j++)
{
printf("*");
}
printf("\n");
}
system("pause");
return 0;
}
7.将一个有序数组进行查找任一一个数字的下标 使二分法
#define _CRT_SECURE_NO_WARNINGS 1
#include
#include
#include
#include
int main()
{
int i=0;
int arr[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
int left = 0; //数组最左边的下标从0开始
int right = sizeof(arr) / sizeof(arr[0]) - 1; //数组右边的下标等于数组的总长度除以一个元素的长度然后减1,单位是字节。
printf("请输入想要查找的数字:");
scanf("%d", &i);
while (right >= left)
{
int mid = left + (right - left) / 2; //查找的中间的下标等于 最左端的下标 加上 右边的下标比左边大的一半,这样子数组不会溢出
if (i > arr[mid])
{
left = mid + 1;
}
else if (i < arr[mid])
{
right = mid - 1;
}
else
{
printf("找到了,下标是%d\n", mid);
break;
}
}
if (left>right)
{
printf("找不到\n ");
Sleep(2000); //停留2000毫秒
return -1;
}
system("pause");
return 0;
}