实训第二天------数组、函数

今日学习任务

 一维数组、二维数组、冒泡排序法排序、函数类型、宏函数、预处理


今日任务完成情况

for (i=0; i < sizeof(a) / sizeof(a[0]); i++);  //固定的求数组的长度

*和[]是一个意思,a[1]====*(a+1)(取值)

1、 通过函数名找到函数的入口地址(函数名就是地址)

2、 给形参分配空间

扫描二维码关注公众号,回复: 2440760 查看本文章

3、 传值(实参传给形参)(形参传给实参)

4、 执行函数体

5、 返回

6、 释放空间(栈空间)

swap(&a,&b);  //地址传递(当涉及修改内存里面的值时)

 

//static修饰局部变量:改变变量的声明周期,直到程序运行结束才被释放

原因:存放的地方不一样,如果不加static修饰,(普通局部变量)存放在栈(内存的一种)上面;加上static修饰(静态变量),存放在数据段

 

#define SQR(x) x*x  //预处理 只做简单的替换

 PRI;         //无参宏函数

 PRINT;  //有参宏函数


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

对老师讲的内容似懂非懂

 

今日未解决问题

函数编写不熟悉,得多练习


今日开发收获

学习了很多C语言知识

 

自我评价

 知识掌握不透彻,需更多的学习


其他

作业:

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

#include<stdio.h>

#include<string.h>

 

int Insert(char a[],char num,int a_i);

void main()

{int a_i=1;

char a[50],num;

printf("please input a zifushuzu: ");

gets(a);

printf("please input a zifu: ");

num=getchar();

getchar();

printf("请输入插入的位置: ");

scanf("%d",&a_i);

if(Insert(a,num,a_i))

printf("没有插入!\n");

 else

  printf("插入后的字符串为: %s\n",a);

}

 

int Insert(char a[],char num,int a_i)

{

int i;

if(strlen(a)-1<a_i)

{

printf("输入位置超出长度!");

return -1;

}

else

{

for(i=strlen(a);i>=a_i-1;i--)

{

a[i+1]=a[i];

}

a[a_i-1]=num;

return 0;

}

}

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

#include <stdio.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;





猜你喜欢

转载自blog.csdn.net/weixin_42653222/article/details/80993538