标签:使用 算法分析 介绍 资料 运用 技术分享 null 处理 伪代码
在本周指针的学习中,遇到了很多难点,运用起来很不熟练。比如说:
- 当指针指向一个数组的时候,该如何控制指针指向的地方。int a【10】,*p=a。此时指针指向数组的第一个元素。
- 如何用指针来调换两个数组的数据:先初始化m,n的值
char *p1=a[n], *p2=b[m],p3;
if(*p1!=‘\0’&&*p1!=‘\0’)
{
p3=*p1;
*p1=*p2;
*p2=p3;
p1++;p2++;}
在之后的内容学习中一定要先有较为扎实的基础知识才能更好地习得高等知识,要多多加油!
指针 --- 110分(满分)
char *p,str[20],record[10]; 定义字符型指针,两个字符型数组
int i,n; 定义整形变量
record[0]=0; 初始化一个字符型数组来存放最后结果
for(i=0;i<=3;i++) gets(str) 题目中明说有四句话,循环输入四次
n=strlen(str); 求出输入的长度
p = str; p=p+n-2; 读取最后一个字符(文字),因为一个汉字占两个字节,因此减二
strcat(record,p); 复制到结果数组中 end for
puts(record); 按要求输出藏尾诗
了解如何使控制指针指向指定位置,然后注意好字节的控制,最后进行输出。
int num1,num[5]; 定义 整形变量num1 和 数组num
srand(time(NULL)); 给随机数的产生存放种子
int number = pow(10,(level)); 根据等级产生数字10的n次方
char op[3],a; 定义字符型数组op 和 变量a
for(int i = 0;i<3;i ++)
num1 = rand() % number; num[i] = num1; 产生随机数并记录到数组中
int t = rand() % 2; 随机产生一个数字,随机生成运算符
if (t == 0) a = '+';
else if (t == 1) a = '-';
op[i] = a; 记录运算符
end for
if(level == 1)
{
int t = rand() % 4; 等级为一的时候有+-*/,随机产生
if (t == 0) a = '+';
else if (t == 1) a = '-';
else if (t == 2) a = '*';
else if (t == 3) a = '/'; end if;
sprintf(exp,"%d%c%d=",num[0],a,num[1]); 将算式的地址记录到指针里
}
if(level > 1) 二级或三级产生三个数字的加减法
sprintf(exp,"%d%c%d%c%d=",num[0],op[0],num[1],op[1],num[2]);
end
if(a == '/') a为全局变量
{
if(exp[2] == '0') 只有在除法运算中才会出现非法运算
return 0; 被除数为零,return 0;
if((exp[0]-'0') / (exp[2]-'0') == 1)
return 0; 除不尽时,返回0
}
return 1; 其他情况,视为成立。return 1
end
以前的代码是一个函数覆盖了创造算式、判断算式是否合理、判断答案正误、输出正答率等功能,比较繁琐(功能比较强大。。。),也就导致了灵活性趋近于zero;因此在这次大作业中,不得不对它进行大手术。现在的代码,作用明显且单一,具有客观的灵活性,易变通。
- 上一次的大作业难点在于怎么去制造随机数和时间处理上,还有第一次写,没有较好的控面能力,不能很好地把介绍语言、提示语言、画面整洁度提供给使用者。经过了一次的尝试,听了老师和同学的讲解后对于这些内容已经初具模型,萌发出了自己的想法,期冀这次可以做得更好!
- 这一次的大作业要使用指针来记录字符数组的地址,进行存放算式。不能熟练地使用指针,因此在各个部分都有知识盲点存在(猛.虎.落.泪.),通过不断地查询资料,观看视频,询问同学来慢慢改进代码!
- 注意事项:在以后的代码编写时,函数过多时一定要分开编写,否则很难调试;
标签:使用 算法分析 介绍 资料 运用 技术分享 null 处理 伪代码
原文地址:https://www.cnblogs.com/yue7521/p/10134372.html