C语言——第三次作业

作业要求一

题目6-1 输出月份英文名

题目6-2 查找星期

题目6-3 计算最长的字符串长度

题目6-4 指定位置输出字符串

作业:C高级第三次作业(2)没有思路,知识点也没有明白,未完成。

作业要求二

题目6-1 输出月份英文名

1.设计思路

(1)主要描述题目算法

第一步:题目要求设计getmonth函数来返回输入的n相应月份的英文单词。

第二步:定义变量i,定义字符串数组,含有各个月份的英文单词。

第三步:使用for循环遍历数组,通过if判断来返回n相应的月份。因为输入的n为月份所以要大于或等于1才可以得到相应月份,所以循环内的if条件为n=i+1.

第四步:最后,如果n不是月份则返回NULL。

(2)流程图

主函数:

调用函数:

2.实验代码

char *getmonth( int n )
{
  int i;
  char *month[12]={"January","February","March","April","May","June","July","August","September","October","November","December"};
  for(i=0;i<12;i++)
  {
    if(n==i+1)
    {
      return *(month+i);
    }
  }
  if(n<=0||n>=13)
  {
    return NULL;
  }
}

3.本题调试过程碰到问题及解决办法

本题无问题,但在第一次提交时有一个分号打成了逗号导致编译错误,通过dev-c++编译找出,已改正,下次应注意。

题目6-2 查找星期

1.设计思路

(1)主要描述题目算法

第一步:本题要求设计getindex函数,查找输入星期对应的序号。

第二步:定义变量i,定义返回变量“xuhao”值为-1,用作返回值。定义字符串数组,包含七个星期英文名。根据对应序号注意将星期日放在最前面。

第三步:使用for循环遍历数组,利用if判断,当找到输入的与数组中的字符串一致时将i赋给“xuhao”。

第四步:返回“xuhao”。

2.实验代码

int getindex( char *s )
{
  int i;
  int xuhao=-1;
  char *week[7]={"Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"};
  for(i=0;i<7;i++)
  {
    if(strcmp(s,*(week+i))==0)
    {
      xuhao=i;
    }
  }
  return xuhao;
}

3.本题调试过程碰到问题及解决办法

问题:if判断条件使用“==”直接判断字符串是否相等,答案错误。

解决办法:通过网上查询得知c语言中要比较字符串不支持使用关系运算符,需使用函数。使用strcmp函数比较则答案正确。

题目6-3 计算最长的字符串长度

1.设计思路

(1)主要描述题目算法

第一步:本题要求实现一个函数,用于计算有n个元素的指针数组s中最长的字符串的长度。

第二步:定义循环变量i,最大值max和长度len。

第三步:利用for循环遍历数组,使用strlen函数求出每个字符串的长度,max最初为首个字符串的长度,遇到比它长的就把len赋给max。

2.实验代码

int max_len( char *s[], int n )
{
  int i;
  int max=0,len=0;
  for(i=0;i<n;i++)
  {
    len=strlen(*(s+i));
    if(max<len)
    {
      max=len;
    }
  }
  return max;
}

3.本题调试过程碰到问题及解决办法

因为字母打错导致编译错误,已改正。

题目6-4 指定位置输出字符串

1.设计思路

(1)主要描述题目算法

第一步:本题要求实现函数,输出给定字符串中特定的字符,定义变量i,j,长度len。指针变量p,计算出给定字符串长度赋给len。

第二步:遍历数组,先利用if找到与ch1相同的字符,将其地址赋给p。在利用循环找到与ch2相同的字符,若存在,输出字符并换行,若不存在则输出字符。

第三步:如果没找到ch1,输出换行,咋子整体循环之后同样输出换行。

2.实验代码

char *match( char *s, char ch1, char ch2 )
{
    int i=0,j=0;
    int len=0;
    char *p;
    len=strlen(s);
    for(i=0;i<len;i++)
    {
        if(s[i]==ch1)
        {
            p=&s[i];
            for(j=i;j<len;j++)
            {
                if(s[j]!=ch2)
                {
                    printf("%c",s[j]);
                }
                if(s[j]==ch2)
                {
                    printf("%c\n",s[j]);
                    return p;
                }
            }
            printf("\n");
            return p;
        }
    }
    printf("\n");
    return s+i;
}

3.本题调试过程碰到问题及解决办法

本题没有思路,在网上查到代码后根据代码写出来的思路,提交时情况“ch1找不到,ch2找到”错误,原因是最后一个return时错误的返回p,将p改为s+i,正确。

一道编程题

有一个axb的数组,该数组里面顺序存放了从1到a*b的数字。其中a是你大学号的前三位数字,b是你大学号的后四位数字,比如你的学号是2017023936,那么数组大小是201 x 3936,数组中顺序存放了1到791136(201和3936的积)的整数. 要求用筛选法,把该数组里的质数找出并打印出来,打印格式为5个质数一行,数字间用空格隔开。

筛选法具体做法是:先把N个自然数按次序排列起来。1不是质数,也不是合数,要划去。第二个数2是质数留下来,而把2后面所有能被2整除的数都划去。2后面第一个没划去的数是3,把3留下,再把3后面所有能被3整除的数都划去。3后面第一个没划去的数是5,把5留下,再把5后面所有能被5整除的数都划去。这样一直做下去,就会把不超过N的全部合数都筛掉,留下的就是不超过N的全部质数。

作业要求三

1、总结两周里所学的知识点,回答下列问题?

(1)如何理解指针数组,它与指针、数组有何关系?为何可以用二级指针对指针数组进行操作?

答:指针数组即为存放指针元素的数组,它以数组的形式存放指针。指针数组在使用时可以作为参量使用,与普通的数组使用方法类似。

(2)将C高级第三次PTA作业(1)任何一个题目改为使用二级指针对指针数组进行操作。

(3)用指针数组处理多个字符串有何优势?可以直接输入多个字符串给未初始化的指针数组吗?为什么?

2.Git地址: https://git.coding.net/ZJY15/ZJY15.git

3、点评3个同学的本周作业(在作业中给出被点评同学博客的链接),并邀请3名同学点评你的作业

4、请用表格和折线图呈现你本周(4/9 8:00~4/23 8:00)的代码行数和所用时间、博客字数和所用时间

原文地址:https://www.cnblogs.com/17-1/p/8797909.html

时间: 2024-10-24 05:50:40

C语言——第三次作业的相关文章

2018C语言第三次作业

要求一 2.struct sk{int a; char *str)}*p;   p->str++ 中的++ 加向? ++加向srt的地址. 要求二 题目1-计算平均成绩 1.设计思路 (1)主要描述题目算法 第一步:定义整数型变量n(学生数量).i(循环变量)和浮点型变量average(平均成绩): 第二步:按照题目要求定义结构体student以及结构体变量s[10]和地址变量p: 第三步:使用地址和循环输入所有学生信息并在循环体内累加学生成绩: 第四步:将学生成绩和除以人数得到平均成绩输入:

c语言第三次作业

上节课我们学习了文件型指针的运用.这节课我们则学习了变量型指针和链表的学习的使用.还了解了free函数.malloc函数的应用 指向结构体变量的指针变量的定义形式与一般指针变量的定义形式相同,只是将其指向类型定义为结构体类型即可.例如:        struct person            { charname[20];             char sex;             int age;             float height;            }; 

关于C语言的问卷调查(作业三)

1.你对自己的未来有什么规划?做了哪些准备? 答:我对我未来的规划就是希望能够学有所用,将来可以从事有关IT方面的,跟自己的专业对口.为此现在我需要多看一些和这个专业有关的书籍,自学一些知识,多些一些代码. 2.你认为什么是学习?学习有什么用?现在学习动力如何?为什么?          答:我认为学习不仅仅是学会书本上的知识,如果只埋头于书本,那与书呆子又有何异?学习更重要的是向身边的人学习,学习做事,学习技能,学习更多书本上学不到的东西.学习不仅可以丰富我们的学识,还可以修养我们的品格,让我

C语言第六次作业

作业A: 1.编写函数int OddSum(int n)计算n个整数中所有奇数的和.其中n个数的值由用户从键盘上输入. #include <stdio.h> int main() { int n,i,a,sum=0; printf("你需要输入几个数:"); scanf("%d",&n); for(i=1;i<=n;i++) { printf("请输入你所输入的数:"); scanf("%d",&am

第三次作业问卷

看到一个问卷不错,拟作为第三次作业的部分内容. 你对自己的未来有什么规划?做了哪些准备? 答:未来走一步算一步,计划赶不上变化,充实自己的知识,多增加一点自己经验,比起知识,更重要的是社交. 你认为什么是学习?学习有什么用?现在学习动力如何?为什么? 答:学习,就是知道一些以前不知道的事.厉害的人有两点:观察力和文化底蕴,学习就是为了增加知识储备,尽量不出现书到用时方恨少的情况.目前的学习动力很缺乏,因为一到大学开始想着混. 你感觉自己什么事情做的比较成功?有什么经验? 答:并不知道,似乎没有什

第三次作业——结对编程

备注:蔡潇_031302601.叶志宇_031302628 功能分析: 这次作业第一个要求就是能够实现将Excel文件内容导入数据库,由于上学期进行数据库实践时使用的是Java语言,并且这次作业与数据库也有关系,于是乎我们就想通过Java来实现这个功能.在学习如何将Excel文件导入数据库的过程中我们发现JExcel这个API,这使得我们的Java编程更加轻松,相比与其他的语言. 第二个要求是要实现显示数据库中的数据,我们组的项目是Web端的,我们想,既然第一个要求都已经用Java实现了,第二个

魏昊卿——《Linux内核分析》第三周作业:Linux系统启动过程

魏昊卿——<Linux内核分析>第三周作业:Linux系统启动过程 一.实验部分 实验指导 使用实验楼的虚拟机打开shell 1 cd LinuxKernel/ 2 qemu -kernel linux-3.18.6/arch/x86/boot/bzImage -initrd rootfs.img 内核启动完成后进入menu程序(<软件工程C编码实践篇>的课程项目),支持三个命令help.version和quit,您也可以添加更多的命令,对选修过<软件工程C编码实践篇>

职业规划第三次作业

看到一个问卷不错,拟作为第三次作业的部分内容. 你对自己的未来有什么规划?做了哪些准备? 答: 学好大学四年的课程,并积极参加各种活动来锻炼自己的能力.在实习期间认真学习工作经验,学习经验然后争取能自己创业 好好交友,多读书, 你认为什么是学习?学习有什么用?现在学习动力如何?为什么? 答:学习是通过他人的言传身教了解知识,将他人的认识转化为自己的知识.学习能够取他人之长补己之短,丰富自己的认知,还避免了闭门造车和坐井观天的错误.现在的学习动力一般,因为新学知识对我来说比较陌生. 你感觉自己什么

第三次作业(毛涛和徐明艳)

第三次作业 题目: 请编写一个能自动生成小学四则运算题目的“软件”.让程序能接受用户输入答案,并判定对错.最后给出总共对/错的数量. 需求分析:      1. 该软件是针对学生有限的计算能力,计算效率,计算精确度而制作的软件: 2. 该软件可以进行简单的四则运算并进行判断: 扩展功能: 1. 程序可以出带括号的正整数四则运算,支持分数,除法保留两位小数. 2. 可以出表达式里含有负整数(负整数最小不小于-100)的题目,且负数需要带括号,用户输入的结果不用带括号. 设计:  根据四则运算法则本