• 第三次作业


    1 输出月份英文名
    1.设计思路
    1.定义十二个月份
    2.判断n是否超出范围,若没有输出那个所指的月份
    2.实验代码
    'char *getmonth( int n )
    {
    char *month[13]={"January","February","March","April","May","June","July","August","September","October","November","December"};
    if(n>=13||n<=0){
    return NULL;
    }else{
    return *(month+n-1);
    }
    }'
    6-2 查找星期

    设计思路
    1.将一个星期每天的英文分别赋值给一维数组指针,定义一个整型变量,赋初值为0。
    2.遍历一维数组,用strmcp函数比较数组中每行元素与输入的字符串是否相同,若相同,则令此时的行数等于一开始定义的整型变量,且跳出循环。
    3.返回整型变量值。
    实验代码

    int getindex( char *s )
    {
    int i;
    char *a[7]= { "Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday" };
    for (i = 0; i < 7; i ++)
    {
    if (strcmp(s, a[i]) == 0)
    break;
    }
    if (i == 7)
    i = -1;
    return i;
    }
    6-3 计算最长的字符串长度
    1.设计思路
    1:遍历s数组,运用strlen函计算出每行元素的长度。
    2:在for循环中进行比较,定义int型max,赋初值为0,当行元素的长度大于max,则将长度的值赋给max。
    3:返回max的值。
    2.实验代码
    int max_len( char s[], int n ) {
    int max = 0,i=0,len;
    for(i=0;i<n;i++) {
    len = strlen(
    (s+i));
    if(len > max) {
    max = len;
    }
    }
    return max;

    }

    一道编程题:

    include <stdio.h>

    int main ()
    {
    int m=20,n=970;
    int p = (int )malloc((mn) sizeof(int));
    int q = (int )malloc((mn) sizeof(int));
    int i=0,j;
    for(i=0;i<(m
    n);i++) {
    p[i] = i+1;
    }
    for(i=0;i<(m
    n);i++) {
    for(j = i+1;j<=(m
    n);j++) {
    if(p[i] !=1&&p[j] != 1) {
    if(p[j]%p[i] ==0) {
    p[j] = 1;
    }
    }
    }
    }
    j=0;
    for(i=0;i<(m
    n);i++) {
    if(p[i] != 1) {
    printf(" %d",p[i]);
    j++;
    }
    if(j == 5) {
    printf(" ");
    j=0;
    }
    }
    }
    6-1 奇数值结点链表

    1.设计思路

    1:在readlist函数中,将输入的值存储在链表里,且用while循环时条件为输入的值不为-1,在while循环内对p进行动态分配内存,切记在完全输入以后,末尾结点的next为空,最后返回链表的头结点。
    2:在getodd函数中,根据题目要求的条件对链表结点中date的值进行分类判断,将数值为偶数的date存储在一个新的链表中,另将为奇数的存储在一个新的列表中。
    3:需考虑若最后新建链表有可能为空的情况。
    4:最后按照要求返回要求链表的头结点。

    2.实验代码
    struct ListNode readlist() {
    int number;
    struct ListNode p = NULL,head = NULL,
    tail = NULL;
    scanf("%d",&number);
    while(number!=-1&&number>0 ) {
    p = (struct ListNode)malloc(sizeof(struct ListNode));
    p->data = number;
    if(head == NULL) {
    head = p;
    } else {
    tail->next = p;
    }
    tail = p;
    scanf("%d",&number);
    }
    if(head == NULL) {
    return NULL;
    }
    tail->next = NULL;
    return head;
    }
    struct ListNode getodd( struct ListNode **L ) {
    struct ListNode p = L,head1 = NULL,r = NULL,
    L1 = NULL,
    r1 = NULL;
    while(p!=NULL&&p->data>0) {
    if(p->data%2!=0) {
    if(head1 == NULL) {
    head1 = p;
    } else {
    r->next = p;
    }
    r = p;
    } else {
    if(L1 NULL) {
    L1 = p;
    } else {
    r1->next = p;
    }
    r1 = p;
    }
    p = p->next;
    }
    if(head1
    NULL){
    return NULL;
    } else {
    r->next = NULL;
    }
    if(L1==NULL) {
    *L = NULL;
    } else {
    r1->next = NULL;
    *L = L1;
    }
    return head1;
    }
    6-2 学生成绩链表处理

    1.设计思路

    1:在createlist函数中将输入的学号,姓名和分数存储到链表中,while循环的条件为学号不为0,因当学号为0时不需要输入姓名及分数,即结束,因此需明确必须在判断学号不为0的情况下才可以输入姓名和成绩,返回链表的头结点。
    2:在deletelist函数中遍历链表的结点,若结点中的分数小于规定的值则释放此结点的内存,需注意若最终结点全被释放完内存,即返回的头结点为空的情况。
    3:将判断后链表的头结点返回主函数。

    2.实验代码
    struct stud_node createlist() {
    int num,score;
    char name[20];
    struct stud_node p,head=NULL,
    tail=NULL;
    p = (struct stud_node*)malloc(sizeof(struct stud_node));
    scanf("%d",&num);

    while (num != 0)
    {
    p = (struct stud_node *)malloc (sizeof (struct stud_node));
    scanf ("%s %d", p->name, &p->score);
    p->num = num;

        if (head == NULL)
            head = p;
        else
            tail->next = p;
        tail = p;
        scanf ("%d", &num);
    }
    return head;
    

    }
    struct stud_node *deletelist( struct stud_node head, int min_score ) {
    struct stud_node L=head,head1=NULL,
    tail1=NULL;
    while(L!=NULL) {
    if(L->score>=min_score)
    {
    if(head1NULL) {
    head1 = L;
    } else {
    tail1->next = L;
    }
    tail1 = L;
    } else {
    free(L);
    }
    L=L->next;
    }
    if(head1
    NULL) {
    return NULL;
    } else {
    tail1->next =NULL;
    }
    return head1;
    }

    二:本周学习状况

    三:评论同学作业
    1.http://www.cnblogs.com/shilcz/p/8906128.html
    2.http://www.cnblogs.com/xmb1547828350/p/8764221.html
    3.http://www.cnblogs.com/lhyyy/p/8906784.html

  • 相关阅读:
    Eclipse EE 3.6 failed to create the java virtual machine 解决
    [收藏]家用三线插座(220V单相)正确接线方法
    Java设计模式 Design Pattern:包装模式 Decorator Pattern
    MIME 类型列表
    面试题参考
    循环队列的运用求K阶斐波那契序列
    加密技术仿射密码
    面试题集锦_1
    栈的运用(5)转换逆波兰式
    栈的运用(6)逆波兰式求值
  • 原文地址:https://www.cnblogs.com/archeralter/p/8909036.html
Copyright © 2020-2023  润新知