wow_:-O 2024-01-07 12:58 采纳率: 100%
浏览 13
已结题

蓝桥杯软件组C语言如何备赛,求解惑!

各位仁人志士有没有建议,这个寒假应该如何备赛,想要以赛促学,今年刚学C语言半年。

  • 写回答

1条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2024-01-07 14:05
    关注

    【相关推荐】



    • 这有个类似的问题, 你可以参考下: https://ask.csdn.net/questions/7805268
    • 我还给你找了一篇非常好的博客,你可以看看是否有帮助,链接:C语言-编写一个函数,用来判断是否为素数,每输入一个数都调用一次此函数进行判断。
    • 您还可以看一下 尹成老师的C语言系列之 堆、堆排序与字符串强化课程中的 堆与堆排序小节, 巩固相关知识点
    • 除此之外, 这篇博客: 练习 用C语言编写一个程序,解释高等数学中的映射、单射和一一映射,并表示为函数。中的 练习 用C语言编写一个程序,解释高等数学中的映射、单射和一一映射,并表示为函数。 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:

      代码块:

      #include <stdio.h>
      #include <stdlib.h>
      
      #define OK 1
      #define ERROR 0
      #define TRUE 1
      #define FALSE 0
      
      typedef int Status;
      typedef int Elemtype;
      
      typedef struct Set{
      	Elemtype num;
      	Set *next;
      	int length;
      }Set, *NumberSet;
      
      void input(NumberSet set);
      void output(NumberSet set);
      Status Function(Elemtype &x, Elemtype &y);
      Status Relationship1(NumberSet x, NumberSet y);
      Status Relationship2(NumberSet x, NumberSet y);
      Status Mapping(NumberSet x, NumberSet y, Status (*fun)(NumberSet x, NumberSet y));
      Status Injection(NumberSet x, NumberSet y, Status (*fun)(NumberSet x, NumberSet y));
      Status Bijection(NumberSet x, NumberSet y);
      
      void input(NumberSet set){
      	printf("Enter Set Length: ");
      	int len, i;
      	scanf_s("%d", &len);
      	printf("Enter Set %d Numbers: ", len);
      	Set *p = (Set*)malloc(sizeof(Set));
      	set->length = 0;
      	for(p = set, i = 0; i < len; i++, p = p->next){
      		scanf_s("%d", &p->num);
      		p->next = (Set*)malloc(sizeof(Set));
      		set->length++;
      		if(i == len - 1)
      			break;
      	}
      	p->next = NULL;
      }//input
      void output(NumberSet set){
      	printf("Set output: ");
      	Set *p;
      	for(p = set; p != NULL; p = p->next)
      		printf("%d ", p->num);
      	printf("\n");
      	printf("Set Length: %d\n", set->length);
      }//output
      Status Function(Elemtype &x, Elemtype &y){
      	if(y == 2*x)
      		return TRUE;
      	else
      		return FALSE;
      }//Function
      Status Relationship1(NumberSet x, NumberSet y){
      	Set *p, *q;
      	int count;
      	for(p = y, count = 0; p != NULL; p = p->next){
      		for(q = x; q != NULL; q = q->next)
      			if(Function(q->num, p->num)){
      				count++;
      				break;
      			}
      	}
      	if(count == y->length)
      		return TRUE;
      	else
      		return FALSE;
      }//Relationship1
      Status Relationship2(NumberSet x, NumberSet y){
      	Set *p, *q;
      	int count;
      	for(p = x, count = 0; p != NULL; p = p->next){
      		for(q = y; q !=	NULL; q = q->next)
      			if(Function(p->num, q->num)){
      				count++;
      				break;
      			}
      	}
      	if(count == x->length)
      		return TRUE;
      	else
      		return FALSE;
      }//Relationship2
      Status Mapping(NumberSet x, NumberSet y, Status (*fun)(NumberSet x, NumberSet y)){
      	fun = Relationship1;
      	if(fun(x, y))
      		return TRUE;
      	else
      		return FALSE;
      }//Mapping
      Status Injection(NumberSet x, NumberSet y, Status (*fun)(NumberSet x, NumberSet y)){
      	fun = Relationship2;
      	if(fun(x, y))
      		return TRUE;
      	else
      		return FALSE;
      }//Injection
      Status Bijection(NumberSet x, NumberSet y){
      	if(Mapping(x, y, Relationship1)&&Injection(x, y, Relationship2))
      		return TRUE;
      	else
      		return FALSE;
      }//Bijection
      
      int main()
      {
      	system("color a");
      
      	Set *numberset1 = (Set*)malloc(sizeof(Set));
      	Set *numberset2 = (Set*)malloc(sizeof(Set));
      	input(numberset1);
      	input(numberset2);
      	output(numberset1);
      	output(numberset2);
      	if(Mapping(numberset1, numberset2, Relationship1))
      		printf("Set1 to Set2 is Mapping\n");
      	if(Injection(numberset1, numberset2, Relationship2))
      		printf("Set1 to Set2 is Injection\n");
      	if(Bijection(numberset1, numberset2))
      		printf("Set1 to Set2 is Bijection\n");
      	free(numberset1);
      	free(numberset2);
      
      	system("pause");
      	return 0;
      }
      

    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 2月2日
  • 已采纳回答 1月25日
  • 创建了问题 1月7日

悬赏问题

  • ¥15 浏览文件夹的图库,视频,图片之类的怎样删除?
  • ¥15 怎么把512还原为520格式
  • ¥15 MATLAB的动态模态分解出现错误,以CFX非定常模拟结果为快照
  • ¥15 求高通平台Softsim调试经验
  • ¥15 canal如何实现将mysql多张表(月表)采集入库到目标表中(一张表)?
  • ¥15 wpf ScrollViewer实现冻结左侧宽度w范围内的视图
  • ¥15 栅极驱动低侧烧毁MOSFET
  • ¥30 写segy数据时出错3
  • ¥100 linux下qt运行QCefView demo报错
  • ¥50 F1C100S下的红外解码IR_RX驱动问题