我在C语言的学习过程当中,意识到指针是至关重要的一部分,学好指针对C的学习有很重要的意义。
指针和内存若是说内存至关于街道,那么地址就至关于位于街道中房子的房号。
而且懂得了如何对指针初始化,赋值等。算法
藏尾诗
本题要求编写一个解密藏尾诗的程序。数组
定义char型a,b数组
for循环
输入第一行诗词
j=strlen(a);计算歌词的长度
b[i]=a[j-2];由于汉字占俩个字节
b[i+1]=a[j-1];
i=i+2;
输出数组b函数
Q1:出现错误是在汉字占用俩个字节这里学习
题目:实现小学四则运算。
在函数那章,咱们已经实现小学四则运算这份做业,如今要求你们把以前设计函数升级改造,原来的函数你们都是用全局变量实现不一样函数参数传递,此次做业要求改地址传递,减小全局变量的使用。设计
题目要求:
题目有3个难度级别,分别为:
第一级是1位数的一步加减乘除计算
第二级是2位数的2步加减运算
第三级是3位数的2步加减运算
改进内容:3d
无论哪一个级别的算式,请都生成一个字符数组存放。无论用户选择哪一个级别题目,都能在表达式生成函数中生成一个算术式子。具体函数接口
void CreateExp(char *exp,int level)
{
switch(level)
{
case 1:生成一位数一步加减式子,写入字符数组exp;
case 2:生成2位数2步加减式子,写入字符数组exp;
case 3:生成3位数2步加减式子,写入字符数组exp;
}
// 注意三位数随机数,应该也包含生成一位数,即用rand()%1000就能够。
}指针
对于不合法或者超出该级别小学生学习范围的表达式,视为不合法,需重造一个。不合法表达式体现有除数为0的表达式、1,2级别中出现不能整除的除法表达式或其余不合法状况
int IsExp(char *exp,int level)
{
}blog
根据字符表达式,能计算其结果。有能力同窗深刻研究表达式优先级。
int ComputeExp(char *exp)
{
}
这块代码能够参考这题作法:接口
include <stdio.h>
int main()
{
int m=0, sum=0;
char c, oldc='+';
do {
c = getchar();
if( c<='9'&&c>='0' )
m = 10*m + c - '0';//1
else
{
if( oldc == '+' )
sum += m;
else
sum -= m;
m = 0;//2
oldc = c;
}
} while(c!='=');
printf("sum=%d", sum);
return;
}内存
主要上述三个函数的改造说明
void CreateExp(char exp,int level)
定义intx型变量n1,n2用于生成随机数;c用于生成四个数判断运算符
定义char型变量op;
switch level
case 1
srand 生成一位数 n1,n2 c
switch(c)
case 0:strcat(exp,"+");break;
case 1:strcat(exp,"-");break;
case 2:strcat(exp,"");break;
case 3:strcat(exp,"/");break;
case 2
同上
case 3
同上
strcat(exp,"=");
输出表达式的字符串exp
int ComputeExp(char *exp,int level)
定义int型变量len
strlen exp 赋值给len
do
op=getchar();
if(op<='9'&&op>='0' )
返回result的值
1.使用指针来传递数据,相对于全局变量来讲在运算上比较不容易出现错误 2.改进过程当中遇到的问题较多,不少问题没法解决 3.在此次的改进中我意识到本身的不足,在C的学习上我更应该努力的学习!