苏嵌 项目实战
学习日志 姓名: 吴秀贞 日期: 7、12
|
|
今日学习任务
|
1、总结前几天所学 2、测试c语言编程能力 |
今日任务完成情况
(详细说明本日任务是否按计划完成,开发的代码量) |
1、完成前几天所学的汇总题目 2、完成4个c语言编程题 |
今日开发中出现的问题汇总
|
1、编写c语言不熟练 2、许多关于c语言的语法记忆模糊 3、不太会使用指针 |
今日未解决问题
|
指针不太会使用,上午的题目有些不会写 |
今日开发收获 |
1、回忆起部分c语言知识 2、对自己的c语言编写能力有了认识 3、整理和总结了前几天的学习的知识点 |
自我评价
(是否按开发规范完成既定任务,需要改进的地方,与他人合作效果等)
|
学习C语言还需要更努力 |
其他
|
无 |
1.用C语言打印出杨辉三角
杨辉三角形是形如:
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
的三角形,其实质是二项式(a+b)的n次方展开后各项的系数排成的三角形,它的特点是左右两边全是1,从第二行起,中间的每一个数是上一行里相邻两个数之和。
1 #include<stdio.h>
2
3 int main()
4 {
5 int i;
6
7 int j;
8 int n;
9 int a[100][100]={0};//设初值
10 printf("Please input n:");
11 scanf("%d",&n);//输入行数
12 for(i = 0;i < n;i++)//1到n的循环
13 {
14 a[i][0] = 1;//将每行第一列赋值为一
15 a[i][i]=1;//将行号与列号相同的赋值为一
16 for(j = 1;j < i;j++)//1到i-1的循环
17 {
18 a[i][j] = a[i-1][j-1] + a[i-1][j];//将第i-1行第j-1列与i-1行j> 列的数相加得第i行第j列的值
19 }
20 }
21 for(i = 0;i < n;i++)//0到n的循环
22 {
23 for(j = 0;j <= i;j++)//0到i的循环
24 {
25 printf("%6d",a[i][j]);//输出数组
26 }
27 printf("\n");
28 }
29 printf("\n");
30 return 0;
31 }
2.用C语言实现简单的计算器(加、减、乘、除)
1 #include<stdio.h>
2
3 int main()
4 {
5 float n;
6 float m;
7 char c;
8 printf("please input:\n");
9 scanf("%f",&n);//输入第一个数
10 scanf("%c",&c);//输入运算符
11 scanf("%f",&m);//输入第二个数
12 switch(c)//判断运算符号
13 {
14 case'+':printf("%f\n",n + m);break;//进行加法
15 case'-':printf("%f\n",n - m);break;//进行减法
16 case'*':printf("%f\n",n * m);break;//进行乘法
17 case'/':printf("%f\n",n / m);break;//进行除法
18 default:break;
19 }
20
3.利用递归方法实现一个函数,该函数能够实现n的阶乘,即 n! = n*(n-1)*…*3*2*1;
1 #include<stdio.h>
2
3 int main()
4 {
5 int n = 1;
6 int i = 1;
7 int N = 1;
8 printf("please input n:\n");
9 scanf("%d",&n);//输入一个数
10 for(i = 1;i <= n;i++)//1到n的循环
11 {
12 N = i * N;//1到n相乘
13 }
14 printf("n! = %d\n",N);//输出n!
15 return 0;
16 }
4、输入一个字符串,计算字符串中子串出现的次数
1 #include <stdio.h>
2 #include <string.h>
3 void main()
4 {
5 char str1[100];//定义字符串数组
6 char str2[100];//定义字符串数组
7 char *p1;//定义指针变量
8 char *p2;//定义指针变量
9 int sum = 0;//定义整形变量
10 printf("请输入一串字符串:\n");
11 gets(str1);//输入字符串
12 printf("请输入要统计的字符串:\n");
13 gets(str2); //输入字符串
14 p1 = str1;//将str1赋值给指针变量P1
15 p2 = str2;//将str2赋值给指针变量P2
16 while(*p1 != '\0')//当读取完str1跳出循环
17 {
18 if(*p1 == *p2)//如果str1中P1所指的字符与str2中P2所指的相同
19 {
20 while(*p1 == *p2 && *p2 != '\0')//如果str1中有str2 循环
21 {
22 p1++;//P1向后移一位
23 p2++;//P2向后移一位
24 }
25 }
26 else
27 {
28 p1++;//如果str1中P1所指的字符与str2中P2所指的不同,P1向后移一
位
29 }
30 if(*p2 == '\0') //判断P2是否读完
31 {
32 sum++; //读完sum加一
33 p2 = str2;//将str2再次赋值给指针变量P2
34 }
35 }
36 printf("%d\n",sum);//输出sum
37 getchar();
38 }