学习日志 姓名:张奇哲 日期:7.12
|
|
今日学习任务
| 上午完成之前所学内容的整理,做好知识总结 下午完成老师布置的c语言测试。 |
今日任务完成情况
(详细说明本日任务是否按计划完成,开发的代码量) | 基本完成知识的整理。下午的基础c语言编写出现困难,需要课后进行完善。 写了四个小程序,都能无错误运行 |
今日开发中出现的问题汇总
| C语言由于积累与知识掌握不足,编写出现困难,但经过翻阅书本,查阅资料等方式基本能够完成编写。 |
今日未解决问题
| C语言编写依然有困难,需要后期学习 |
今日开发收获 | 整理了前段时间所学的各项知识。进一步巩固了所学。在下午进行的C语言编写测试中,发现自己编写存在较大困难,要求我在后期学习中,认真学习C语言方面知识。 |
自我评价
(是否按开发规范完成既定任务,需要改进的地方,与他人合作效果等)
| 基本完成了今天的学习任务,但是过程中也发现了一些问题,希望在日后的学习过程中能够努力加以克服。 |
其他
| 编写的四个小程序,附下。 |
1.用C语言打印出杨辉三角
#include<stdio.h> //头文件
int main() //定义主函数
{
int i; //定义i作为行数
int j; //定义j作为列数
int a[11][11]; //定义一个二维数组
for(i = 0;i < 11;i ++) //for循环从第一行到第11行
{
a[i][i] = 1; //每行最后一个数为1
a[i][0] = 1; //每行第一个数为1
}
for(i = 2;i < 11;i ++) //从第三行循环到11行
{
for(j = 1;j <= i - 1;j ++) //for循环从第二列循环至行数减一
{
a[i][j] = a[i - 1][j - 1] + a[i - 1][j]; //i行j列的数等于i-1行j-1列的数加上i-1行j列的数
}
}
for(i = 0;i < 11; i ++) //for循环从第一行到第11行
{
for(j = 0;j <= i; j ++) //for循环从第一列到第i列
printf("%5d",a[i][j]); //输出第i行第j列的数
printf("\n"); //i发生变化进行换行
}
printf("\n"); //换行
return 0; //返回值为0
}
2.用C语言实现简单的计算器(加、减、乘、除)
#include <stdio.h> //头文件
main() //主函数
{
float a; //定义需要计算的第一个数
float b; //定义需要计算的第二个数
float c; //定义计算结果
char x; //定义符号位
scanf("%f%c%f",&a,&x,&b); //用户输入计算公式
switch( x ) //switch结构选择语句
{
case'+': c = a + b; break; //x为+时c的值为a+b
case'-':c = a - b; break; //x为-时c的值为a-b
case'*':c = a * b; break; //x为*时c的值为a*b
case'/':c = (b == 0)?(0):( a / b);break; //x为/时判断b的值是否为0,为零时c为0,不为零则c为a/b
default:c = 0;break;
}
printf("%f%c%f= %f\n",a,x,b,c); // 输出结果
3.利用递归方法实现一个函数,该函数能够实现n的阶乘,即 n! = n*(n-1)*…*3*2*1;
#include<stdio.h> //头文件
main() //定义主函数
{
intn; //定义需要计算的数
int fact(int); //定义计算阶乘函数
printf("输入需要计算阶乘的数:"); //提示从键盘输入数
scanf("%d",&n); //从键盘输入数
printf("%d!=%d\n",n,fac(n)); //输出结果
}
int fac(intn) //定义计算阶乘函数
{
int p; //从键盘输入的数
if(n <= 1) //if语句进行相关数运算
p = 1;
else
p = n * fac(n - 1);
return p; //返回值为p
}
4.输入一个字符串,计算字符串中子串出现的次数
#include<stdio.h> //两个头文件库
#include<string.h>
int main()
{
char a[100]; //定义字符数组
printf("请输入字符串\n");
scanf("%s",a); //由键盘输入字符串
char * c = a; //定义指针c指向数组a
char b[10]; //定义字符数组
printf("请输入子串\n");
scanf("%s",b); //由键盘输入子串
char * d = b; //定义指针d指向数组b
int n; //定义整形变量
int num = 0; //定义计数用num
n = strlen(d); //n的值为字符串d的长度
while(strlen(c) > 0) //while循环语句
{
if(strncmp(c,d,n) == 0) //运用strncmp函数比较a b两个字符串
{
num++; //计数+1
c += n; //继续比较后面位
}
else
{
c++; //进行比较
}
}
printf("%d\n",num); //输出出现次数
return 0;
}