学习日志

学习日志                                                                     姓名:孙双      日期:2018/7/10
今日学习任务

今天学习的是数组和函数

1.一维数组初始化与内存中的存放

2.二维数组赋值

3.字符数组

4.函数的使用及调用过程

5.函数值以及地址的传递

6.变量的存储类型(auto,register,static,extern)

7.预处理 (所有以#开头)

8.include"    "以及include<>区别

9.不带参数的宏

今日任务完成情况

 

(详细说明本日任务是否按计划完成,开发的代码量)

 

 

今天的计划按时完成,开发的代码

1.一维数组的初始化和&a[0],a,&a,输出地址的区别

2.冒泡排序

#include <stdio.h>
#define SIZE 10
int main()
{
int a[SIZE]={0};
int i,j,tmp;
       for(i=0;i<SIZE;i++)
{
scanf("%d",&a[i]);
}
      for(i=0;i<SIZE;i++)
{
for(j=0;j<SIZE-i-1;j++)
{
if(a[j]<a[j+1])
{
tmp=a[j];
a[j]=a[j+1];
a[j+1]=tmp;
}
}
}
   for(i=0;i<SIZE;i++)
{
printf("%4d",a[i]);
}
   printf("\n");

}

3.二维数组的初始化,&a[0][0],a[0],a,&a,输出地址的区别以及*(a+1)=a[1];

4.输出helloworld以及!

5.自定义函数,没有返回值,没有形参,有返回值,没有形参,有返回值和形参

6.将冒泡排序的程序改用输入,排序,输出三个函数实现。

7.两个值的交换(地址传递)

#include <stdio.h>
void swap(int *x,int *y)
{
int tmp;
tmp=*x;
*x=*y;
*y=tmp;
}


int main()
{
int a=1,b=2;
swap(&a,&b);
printf("%d%d",a,b);//地址传递(当涉及修改值)
return 0;
}


8.函数的声明和定义(extern,static)

9.static修饰局部变量

10.有参无参宏函数


今日开发中出现的问题汇总

今天的主要难题在数组这一部分,数组的基础不太好,数组的地址不太明白,冒泡排序的知识点掌握的也不是太好,对函数的话,地址传递还是有难度的。

今日未解决问题

 

1.字符数组中在制定位置插入字符

2.设计一个洗牌发牌的程序

 

今日开发收获

 

通过今天的学习,收货颇丰,对数组和函数的更加的了解了。对预处理和宏函数这些没有接触过的知识也有了一定的了解。

自我评价

 

(是否按开发规范完成

 

既定任务,需要改进的地方,与他人合作效果等)

虽然今天有一些不太了解的知识点,但总的来说还是可以按时完成任务的。

其他

 




1.字符数组中在制定位置插入字

#include"stdio.h"

void main()
{
    char C[100];//原始字符串
    char D[100];//最终字符串
    char b;//插入的字符
    int i = 0;
    int s;
    char *p = C;
    printf("输入字符串,“#”结束\n");
    char a = 'a';
//输入字符串,以#结尾,最后将#改为'\0'
    while (a != '#')
    {
        a = getchar();
        C[i++] = a;
    }
    C[i-1] = '\0';
 
    printf("输出字符串\n");
    printf("%s\n", C);
 
    printf("输入插入位置,在第?个字符前\n");
    scanf("%d", &s);
 
    getchar();//接收回车
    printf("输入插入的字符\n");
    scanf("%c",&b);
 
    /*将插入位置前的字符复制到D数组中,
    然后在D中接着插入要插入的字符,
    最后把剩余的字符复制到D中*/
 
    for (i = 0; i <= s - 1; i++)
    {
        D[i] = C[i];
    }
    D[i] = b;
    while (C[i] != '\0')
    {
        D[i + 1] = C[i];
        i++;
    }
    D[i + 1] = '\0';
    printf("输出字符串\n");
    printf("%s\n", D);
}
2,设计一个洗牌发牌程序

#include <stdio.h>
#include<stdlib.h>
#include<time.h>
int main()
{
int n,i;
int flag[52]= {0};
srand((unsigned int)time(NULL));

for(i = 0; i < 52; i++)
{
n = rand()%52;
while(flag[n] == 1)
{
n = rand()%52;
}
flag[n] = 1;

if(n >= 0 && n < 13)
{
printf("红心%d ", n + 1);

else if(n >= 13 && n < 26)
{
printf("黑桃%d ", n - 12);
}
else if(n >= 26 && n < 39)
{
printf("梅花%d ",n - 25);
}
else
{
printf("方片%d ",n - 38);
}


if((i +1) % 13 == 0)
printf("\n");
}
return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值