二学期第三次作业
1
1.输入月份英文名
char *getmonth(int n)
{
char *a[12]={"January","February","March","April","May","June","July","August","September","October","November","December"};
int i;
for(i=0;i<=12;i++)
{
if(i==0)
{
continue;
}else if (i==n)
{
return a[i-1];
}
}
if(n<=0||n>=13)
{
return NULL;
}
}
思路
根据输入的数字输出月份
无错误
2.查找星期
int getindex( char *s )
{
char *a[7]={"Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday",};
int i,n=0;
for(i=0;i<7;i++)
{
if(strcmp(s,a[i])==0)
{
return i;
}
}
if(n<=0||n>=7)
{
return -1;
}
}
思路
根据输入的星期输出数字
无错误
3.计算最长的字符串长度
int max_len( char *s[], int n )
{
int max=0,j=0,long=0;
for(j=0;*(s+j)!='\0';j++)
{
long=strlong(*(s+j));
if(max<long)
{
max=long;
}
}
return max;
}
思路
比较输入的字符串的长度后输出最长的字符串的个数
无问题
4.指定位置输出字符串
char *match( char *s, char ch1, char ch2 )
{
int i=0,j=0;
char *p=NULL;
for(i=0;*(s+i)!='\0';i++)
{
if(s[i]==ch1)
{
p=&s[i];
for(j=i;*(s+j)!='\0';j++)
{
if(s[j]!=ch2)
{
printf("%c", s[j]);
}
if(s[j]==ch2)
{
printf("%c\n", s[j]);
return p;
}
}
printf("\n");
return p;
}
}
if(s[i] == '\0')
p = &s[i];
printf("\n");
return p;
}
无问题
5.奇数值结点链表
struct ListNode *readlist()
{
struct ListNode *p=NULL,*tail=NULL,*head=NULL;
int data=0,count=0;
p=tail=(struct ListNode*)malloc(sizeof(struct ListNode));
scanf("%d",&data);
while(data!=-1)
{
p->data=data;
p->next=NULL;
count++;
if(count==1)
{
head=p;
}else
{
tail->next=p;
tail=p;
}
p=(struct ListNode*)malloc(sizeof(struct ListNode));
scanf("%d",&data);
}
return head;
}
struct ListNode *getodd( struct ListNode **L )
{
struct ListNode *i=NULL,*head1=NULL,*head2=NULL,*m=NULL,*n=NULL;
i=*L;
head1=(struct ListNode*)malloc(sizeof(struct ListNode));
head2=(struct ListNode*)malloc(sizeof(struct ListNode));
head1->next=NULL;
head2->next=NULL;
m=head1;
n=head2;
while(i)
{
if(i->data%2!=0)
{
m->next=i;
m=i;
}else
{
n->next=i;
n=i;
}
i=i->next;
}
m->next=NULL;
n->next=NULL;
*L=head2->next;
return head1->next;
}
无问题
5.6题并不会
2.学习总结和进度
1、总结两周里所学的知识点,回答下列问题?(用自己的话表达出你的理解,网上复制粘贴没有分数)(5分)
(1)如何理解指针数组,它与指针、数组有何关系?为何可以用二级指针对指针数组进行操作?
指针数组是将指针集成数组。
(2)将C高级第三次PTA作业(1)任何一个题目改为使用二级指针对指针数组进行操作。
(3)用指针数组处理多个字符串有何优势?可以直接输入多个字符串给未初始化的指针数组吗?为什么?
用指针数组处理多个字符串比较快捷简便,不可以。
2.git
地址
3.