2019-3-25

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;
}

你可能感兴趣的:(2019-3-25)