7.20-7.22作业代码

这篇博客涵盖了多种编程挑战和算法实现,包括99乘法表的拓展——N阶乘法表,猜数字游戏,二分查找算法以及交换整数的函数。此外,还涉及到了闰年判断和素数检测的函数。这些实例展示了基础编程技巧和问题解决能力。
摘要由CSDN通过智能技术生成

99乘法表——拓展:N阶乘法表。

猜数字。

函数交换两个整型。

二分查找。

#define    _CRT_SECURE_NO_WARNINGS  1
//99乘法表
//int main()
//{
//	int i, j;
//	for (i = 1; i <= 9; i++)
//	{
//		for (j = 1; j <= i; j++)
//		{
//			printf("%d ", i * j);
//		}
//		printf("\n");
//	}
//	return 0;
//}

//#include<stdio.h>
//int main()
//{
//	int i, k;
//	int arr[10] = { 0 };
//	int max = arr[0];
//	for (k = 0; k < 10; k++)
//	{
//		scanf("%d", &arr[k]);
//	}
//	for (i = 1; i < 10; i++)
//	{
//		if (arr[i] > max)
//			max = arr[i];
//	}
//	printf("%d", max);
//	return 0;
//}


//猜数字
//#include<stdio.h>
//#include<stdlib.h>
//#include<time.h>
//
//void menu()
//{
//	printf("****************************\n");
//	printf("********   1. play   *******\n");
//	printf("********   0. exit   *******\n");
//	printf("****************************\n");
//}
//void game()
//{
//	int ret = rand() % 100 + 1;
//	int  num = 0;
//	int count = 0;
//	while (1)
//	{
//		printf("请猜数字:>");
//		scanf("%d", &num);
//		if (num == ret)
//		{
//			printf("猜对了\n");
//		}
//		else if (num > ret)
//		{
//			printf("猜大了\n");
//		}
//		else
//		{
//			printf("猜小了\n");
//		}
//		printf("您已猜了%d次\n",++count);
//	}
//}
//
//int main()
//{
//	int guess = 0;
//	srand((unsigned int)time(NULL));
//	do
//	{
//		menu();
//		printf("请选择:>");
//		scanf("%d", &guess);
//		switch (guess)
//		{
//		case 1:
//			game();
//			break;
//		case 0:
//			printf("退出\n");
//
//		default:
//			printf("选择错误\n");
//			break;
//		}
//	} while (guess);
//	return 0;
//}



//二分查找
/* 具体找的方式:
1. 找到数组的中间位置
2. 检测中间位置的数据是否与要查找的数据key相等
a : 相等,找到,打印下标,跳出循环
b : key < arr[mid], 则key可能在arr[mid]的左半侧,继续到左半侧进行二分查找
    c : key > arr[mid], 则key可能在arr[mid]的右半侧,继续到右半侧进行二分查找

    如果找到返回下标,否则继续,直到区间中没有元素时,说明key不在集合中,打印找不到

    易错点:
    1. right的右半侧区间取值,该值决定了后序的写法
    2. while循环的条件是否有等号
    3. 求中间位置的方法,直接相加除2容易造成溢出
    4. 更改left和right的边界时,不确定是否要 + 1和 - 1
*/
//#include<stdio.h>
//int main()
//{
//    int arr[] = { 1,2,3,4,5,6,7,8,9,10 };
//    int key = 4;
//    int left = 0;
//    int right = sizeof(arr) / sizeof(arr[0]) - 1;
//    while (left <= right)
//    {
//        int mid = left + (right - left) / 2;
//        if (arr[mid] > key)
//        {
//            right = mid - 1;
//        }
//        else if (arr[mid] < key)
//        {
//            left = mid + 1;
//        }
//        else
//        {
//            printf("找到了,下标是:%d\n", mid);
//            break;
//        }
//    }
//    if (left > right)
//        printf("找不到\n");
//    return 0;
//}




//N阶乘法表
//#include<stdio.h>
//int  main()
//{
//	int n = 0 ;
//	scanf("%d", &n);
//	int i, j;
//	for (i = 1; i <= n; i++)
//	{
//		for (j = 1; j <= i; j++)
//		{
//			printf("%d*%d=%d ",i, j, i * j);
//		}
//		printf("\n");
//	}
//	return 0;
//}


//函数交换两个整数
//#include<stdio.h>
//void Swap(int *a, int *b) 因为函数只能返回一个值,而需要改变两个值,固需要传址(改变实参),而不是传值(改变形参)
//{
//    int t;
//    t = *a;
//    *a = *b;
//    *b = t;
//}
//int main()
//{
//    int num1, num2;
//    scanf("%d %d", &num1, &num2);
//    Swap(&num1, &num2);
//    printf("%d %d",num1,num2);
//    return 0;
//}

//
//实现函数判断year是不是润年。
//#include<stdio.h>
//void leap_year(int year)
//{
//    if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0)
//    {
//        printf("%d是闰年", year);
//    }
//    else
//    {
//        printf("%d不是闰年", year);
//
//    }
//}
//int main()
//{
//    int year;
//    printf("请输入年份\n");
//    scanf("%d", &year);
//    leap_year(year);
//    return 0;
//}

//
//
//实现一个函数,判断一个数是不是素数。
//利用上面实现的函数打印100到200之间的素数。
//#include<stdio.h>
//#include<math.h>
//int  isPrime(int num)
//{
//    int i = 0;
//    for (i = 2; i <= sqrt(num); i + 2)
//    {
//        if (num % i == 0)
//            return 0;
//        else
//            return 1;
//    }
//}
//int main()
//{
//    int num;
//    int ret;
//    for (num = 101; num <= 200; num++)
//    {
//        ret = isPrime(num);
//        if (ret == 1)
//            printf("%d ", num);
//    }
//    return 0;
//}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值