您的位置:首页 > 财经 > 金融 > 河南安阳市有几个县_搜索引擎营销是什么_登封搜索引擎优化_百度seo优化方案

河南安阳市有几个县_搜索引擎营销是什么_登封搜索引擎优化_百度seo优化方案

2024/11/19 20:09:14 来源:https://blog.csdn.net/2303_82182099/article/details/142903491  浏览:    关键词:河南安阳市有几个县_搜索引擎营销是什么_登封搜索引擎优化_百度seo优化方案
河南安阳市有几个县_搜索引擎营销是什么_登封搜索引擎优化_百度seo优化方案

1、日期结构体

【问题描述】

定义一个日期结构体类型(包括年、月、日),计算某日在本年中是第几天,注意闰年问题。

【输入形式】一个日期,包括年、月、日

【输出形式】该日期为该年的第几天
【样例输入】

2021 10 27

【样例输出】

300

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
struct date 
{int year;int month;int day;
};
int main()
{struct date a;int i,s=0;int x[12]={31,28,31,30,31,30,31,31,30,31,30,31};scanf("%d %d %d",&a.year,&a.month,&a.day);for(i=0;i<a.month-1;i++){s+=x[i];}if((a.month>2)&&((a.year%4==0&&a.year%100!=0)||(a.year%400==0))){s+=1;}printf("%d\n",s+a.day);return 0;
}

2、单项动态链表的创建与输出

【问题描述】

写一个建立单向动态链表的create()函数,从键盘输入n个学生的数据(num,score),约定学号不会为0,如果学号为0表示建立链表的过程完成,并写一个show()函数输出链表,输出格式: "%ld\t%5.1f\n"

表头输出格式:printf("num\tscore\n")

编写主函数调用create()和show()完成动态链表的创建与输出

【输入形式】n个学生的数据
【输出形式】链表中n个学生的信息
【样例输入】

1 99

2 88

3 77

4 66

5 55

0

【样例输出】

Now,These 5 records are:

num       score

1          99.0

2          88.0

3          77.0

4          66.0

5          55.0

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <malloc.h>
struct student
{int num;double score;struct student *next;
};
int n=0;
struct student *create()
{struct student *head;struct student *p1,*p2;p1=p2=(struct student *)malloc(sizeof(struct student));scanf("%d %lf",&p1->num,&p1->score);head=NULL;while(1){n++;if(n==1){head=p1;}else{p2->next=p1;}p2=p1;p1=(struct student *)malloc(sizeof(struct student));scanf("%d",&p1->num);if(p1->num==0){break;}scanf("%lf",&p1->score);}p2->next=NULL;return head;
}
void show(struct student *head)
{struct student *p;printf("Now,These %d records are:\n",n);printf("num     score\n");p=head;if(head!=NULL)do{printf("%-4d    %5.1f",p->num,p->score);p=p->next;if(p!=NULL){printf("\n");}} while(p!=NULL);
}
int main()
{struct student *head;head=create();show(head);return 0;
}

 

3、删除单向动态链表中指定的学生数据

【问题描述】

写一个建立单向动态链表的函数,从键盘输入n个学生的数据(num, score),约定学号不会为0,如果学号为0表示建立链表的过程完成,然后从键盘输入一个要删除学生的学号,并输出删除后的链表结果("%ld\t%5.1f\n")。

写三个函数create(), show(), del()各实现其功能。

表头输出格式:printf("num\tscore\n")

注意:如果要删除的学号在链表中不存在,则先输出:("%d not been found!\n",num);  然后再输出链表中的结点数据

【输入形式】

从键盘输入n个学生的数据,建立n个学生的动态链表

从键盘输入要删除的学生数据
【输出形式】

输出删除后链表结果
【样例输入】

1 99

2 88

3 77

4 66

5 55

0

3

【样例输出】

delete:3

Now,These 4 records are:

num       score

1          99.0

2          88.0

4          66.0

5          55.0

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <malloc.h>
struct student
{int num;double score;struct student *next;
};
int n=0;
struct student *create()
{struct student *del(struct student *head,int num);struct student *head;struct student *p1,*p2;p1=p2=(struct student *)malloc(sizeof(struct student));scanf("%d %lf",&p1->num,&p1->score);head=NULL;while(1){n++;if(n==1){head=p1;}else{p2->next=p1;}p2=p1;p1=(struct student *)malloc(sizeof(struct student));scanf("%d",&p1->num);if(p1->num==0){break;}scanf("%lf",&p1->score);}p2->next=NULL;scanf("%d",&p1->num);del(head,p1->num);return head;
}
struct student *del(struct student *head,int num)
{struct student *p1,*p2;p1=p2=head;while(num!=p1->num&&p1->next!=NULL){p2 = p1;p1 = p1->next;}if(num==p1->num){if(p1==head){head=p1->next;}else {p2->next=p1->next;}printf("delete:%d\n",num);n--;}else{printf("%d not been found!\n",num);}return head;
}
void show(struct student *head)
{struct student *p;printf("Now,These %d records are:\n",n);printf("num     score\n");p=head;if(head!=NULL)do{printf("%-4d    %5.1f",p->num,p->score);p=p->next;if(p!=NULL){printf("\n");}} while(p!=NULL);
}
int main()
{struct student *head;head=create();show(head);return 0;
}

 

4、动态链表插入学生数据

【问题描述】

写一个建立单向动态链表的函数,从键盘输入n个学生的数据(num,score),约定学号不会为0,如果学号为0表示建立链表的过程完成,然后从键盘输入一个要插入学生的数据,并输出插入后的链表结果,输出格式:("%ld\t%5.1f\n")。

写三个函数create(), show(), insert()各实现其功能。

注意:插入后的链表学号依旧按由小到大排列。

【输入形式】

从键盘输入n个学生的数据,完成建立链表

从键盘输入要插入的1个学生数据

【输出形式】

输出插入数据后链表

【样例输入】

1 99

2 88

3 77

4 66

5 55

0

9 90

【样例输出】

Now,These 6 records are:

num       score

1          99.0

2          88.0

3          77.0

4          66.0

5          55.0

9          90.0

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <malloc.h>
struct student
{int num;double score;struct student *next;
};
int n=0;
struct student *create()
{struct student *head;struct student *p1,*p2;p1=p2=(struct student *)malloc(sizeof(struct student));scanf("%d %lf",&p1->num,&p1->score);head=NULL;while(1){n++;if(n==1){head=p1;}else{p2->next=p1;}p2=p1;p1=(struct student *)malloc(sizeof(struct student));scanf("%d",&p1->num);if(p1->num==0){break;}scanf("%lf",&p1->score);}p2->next=NULL;return head;
}
struct student *insert(struct student *head,struct student *a)
{struct student *p0,*p1,*p2;p1=p2=head;p0=a;if(head==NULL){head=p0;p0->next=NULL;}else{while((p0->num > p1->num)&&(p1->next!=NULL)){p2=p1;p1=p1->next;}if(p0->num<=p1->num){if(head==p1){head=p0;}else{p2->next=p0;}p0->next=p1;}else{p1->next=p0;p0->next=NULL;}}n++;return head;
}
void show(struct student *head)
{struct student *p;printf("Now,These %d records are:\n",n);printf("num     score\n");p=head;if(head!=NULL)do{printf("%-4d    %5.1f",p->num,p->score);p=p->next;if(p!=NULL){printf("\n");}} while(p!=NULL);
}
int main()
{struct student *creat();struct student *insert(struct student *, struct student *);void print(struct student *);struct student *head, stu;head=create();scanf("%d %lf",&stu.num,&stu.score);head=insert(head,&stu);show(head);return 0;
}

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com