Longjingrap

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

PTA实验作业

题目1:6-1 计算两个复数之积

1. 本题PTA提交列表(要提交列表,不是结果)

2. 设计思路

struct complex{
    int real;
    int imag;
};//该结构体表示复数的实部和虚部
struct complex w,定义结构变量w
w的实部=x的实部*y的实部-x的虚部*y的虚部
w的虚部=x的实部*y的虚部+x的虚部*y的实部
返回 w

3.代码截图(注意,截图,截图,截图。不要粘贴博客上。不用用···语法去渲染)

4.本题调试过程碰到问题及PTA提交列表情况说明。

  • 本题没遇到问题

题目2:7-1 计算职工工资

1.本题PTA提交列表(要提交列表,不是结果)

2. 设计思路

#include<stdio.h>
struct people{
	char name[11];
	float money;
	float floating;
	float spend;
	float Realwages;
};//该结构表示员工的姓名,基本工资,浮动工资,支出和实发工资
定义N表示要统计员工的个数,i用来控制循环
输入N
定义一个结构数组struct people s[N]存放员工信息
for I=0   to  I<N
     输入对应员工的姓名、基本工资、浮动工资和支出
       并统计该员工的实发工资
end for
for I=0   to  I<N
输出员工的姓名和实发工资
end for

3.代码截图(注意,截图,截图,截图。不要粘贴博客上。不用用···语法去渲染)

4.本题调试过程碰到问题及PTA提交列表情况说明。

  • 本题没有遇到问题

题目3:7-6 通讯录的录入与显示

1.本题PTA提交列表(要提交列表,不是结果)

2.设计思路

struct prople{
	char name[11];
	char birthday[11]; 
	char sex;
	char fixedline[20];
	char Mobilephone[20];
};//该结构表示朋友的姓名 生日 性别 固话 手机
定义I,j控制循环,n表示多少个朋友的记录,m表示要查询的朋友个数,k表示要查询朋友信息的编号
输入n,定义结构数组是s [n];
for I=0 to  I<n 
    输入对应编号朋友的姓名 生日 性别 固话 手机
end for
输入m
for j=0 to  j<m
   输入要查询信息的朋友的编号
      if(k>=0&&k<n)//表明查询的记录存在
  输出该朋友的姓名,固话,手机,性别,生日
      else//查询记录不存在
  输出Not Found
end for

3.代码截图(注意,截图,截图,截图。不要粘贴博客上。不用用···语法去渲染)

4.本题调试过程碰到问题及PTA提交列表情况说明。

  • 这道题之前错的时候没有截图,之前这道题朋友的生日我用的是整形变量。但是用整形变量最后一个测试题(最大N,反复查询同一记录)一直是答案错误,也不知道怎么改,然后问同学,他叫我用字符型数组定义生日,然后我改了就对了,但是现在还不知道为什么,虽然整形变量是麻烦了点,但好像也是对的啊

二、截图本周题目集的PTA最后排名。

三、阅读代码。

代码一

线性表用顺序实现。请填空写一个求线性表L 中所有奇数之和的算法。
例如:
L=(1,2,3,4,5) 其和为 9(本题结构体定义很不错。)

#include <stdio.h>
#define N 10
typedef struct sqlist
 {
   int data[N];
   int last;
   }LIST;
 int Total(LIST list)
 {int sum=0;
for(int i=0;i<=list.last;i++)
   if(list.data[i]%2)
      sum+=list.data[i];
     return sum;  
 }
 void Show(LIST list)
 {
   int i;
   for(i=0;i<=list.last;i++)
      printf("%3d", list.data[i]);
   printf("\n");
 }
int main()
 {
    LIST list;
    int i,sum;
    for(i=0;i<=5;i++)
     list.data[i]=i;
    list.last=5;
    Show(list);
    sum=Total(list);
    printf("sum=%3d\n",sum);
    return 0;
}
  • 结构定义真的很不错,易懂快捷,代码 list.last=5很巧妙,如果是我肯定想不到

代码二

6-9 求子串在母串中最后一次出现的地址(10 分)
给定程序中函数fun的功能是:求出在字符串中最后一次出现的子字符串的地址,通过函数值返回,在主函数中输出从此地址开始的字符串;若未找到,则函数值为NULL。

char *fun (char *s, char *t ){
    char *str1,*str2,*a;
    a=NULL;
    while(*s){
    	str1=s;
    	str2=t;
	while(*str2){
		if(*str1==*str2){
			str1++;str2++;
		}
		else
		break;
	}
	if(*str2=='\0') {
	   a=s;}
	  s++;
	}
return a;
}
  • 依据s的地址进行递增,来求出最后一次出现的子字符串的地址,巧妙巧妙。

四、本周学习总结

1.总结本周学习内容

结构体、共用体、枚举这种构造数据类型特点。

结构体:1.结构体像数组和指针一样,也是一种构造结构类型,它于数组的区别是,在结构中各成员数据类型可以不同
共用体:1.共用体是一种多变量共享存储空间的构造类型,它允许几种不同的变量共用同一存储空间。共用体和结构体的区别:1.结构体每一位成员都用来表示一种具体事务的属性,共用体成员可以表示多种属性(同一存储空间可以存储不同类型的数据)。
2.结构体总空间大小,等于各成员总长度,共用体空间等于最大成员占据的空间。
3.共用体不能赋初值。
枚举法:枚举类型是指变量的值可以全部列出,定义一个枚举变量后,变量的值确定在定义之中。它和结构体、共用体的区别在于,枚举元素是常量,只能在定义阶段赋值。

递归函数原理

1.递归(recursion)就是子程序(或函数)直接调用自己或通过一系列调用语句间接调用自己,是一种描述问题和解决问题的基本方法。
2.(1)边界条件:确定递归到何时终止,也称为递归出口。
 
    (2)递归模式:大问题是如何分解为小问题的,也称为递归体。递归函数只有具备了这两个要素,才能在有限次计算后得出结果
 
在递归函数中,调用函数和被调用函数是同一个函数,需要注意的是递归函数的调用层次,如果把调用递归函数的主函数称为第0层,进入函数后,首次递归调用自身称为第1层调用;从第i层递归调用自身称为第i+1层。反之,退出第i+1层调用应该返回第i层。

2.2.罗列本周一些错题。


  • 忘记定义结构数组emp[10]了
  • 换行符也没有考虑到,
posted on 2017-12-24 22:05  Longjingrap  阅读(515)  评论(0编辑  收藏  举报