今日学习任务 | 数组与函数 |
今日任务完成情况 (详细说明本日任务是否按计划完成,开发的代码量。)
| 1、了解一维数组与二维数组的概念 2、局部变量与全局变量的定义 3、形参与实参的使用 4、如何构造函数 5、如何调用函数 |
今日开发中遇到的问题汇总 | 1、传值部分,没有注意到值传递和地址传递 2、&a[0][0]、a[0]、a、&a各自的含义一开始没搞清楚 3、实参和形参搞混淆了 |
今日未解决问题 | 有关栈的问题 |
今日开发收获 | 函数调用 1、通过函数名找到函数地址 2、给形参分配空间 3、传值(实参传给形参)(值传递、地址传递) (1)当涉及修改内存里面的值得时候,用地址传递 4、执行函数体 5、返回 6、释放空间(栈空间)(操作系统自己完成) static的定义 1、static修饰全局变量:改变变量的作用域,只能在当前使用 2、static修饰函数:改变函数的作用域,只能在当前文件中使用 3、static修饰局部变量:改变变量的声明周期,知道程序运行结束才被释放,原因存放的地方不一样,不加static修饰(普通局部变量)存放在栈(内存的一种)上面,加上static修饰(静态变量),存放在数据段。 |
自我评价
(是否规范完成指定任务,需要改进的地方,与他人合作等。)
今天学到很多东西,希望每天都能一点一点进步。
其他
无
#include <string.h>
int Insert(char a[],char num,int a_i);
void main()
{
int a_i;
char a[50],num;
printf("请输入一个字符串:");
gets(a);
printf("请输入您想插入的一个字符:");
num=getchar();
getchar();
printf("请输入您想插入的位置:");
fflush(stdin);
scanf("%d",&a_i);
if (Insert(a,num,a_i))
printf("没有插入!\n");
else
printf("插入后的字符串为:%s\n",a);
system("pause");
}
/*函数功能:在字符串的某个位置插入一个字符*/
int Insert(char a[],char num,int a_i)
{
int i;
if(a_i >= strlen(a))
{
printf("您输入的位置超出字符串长度了!");
return -1;
}
else
{
for(i=strlen(a);i >= a_i;i--)
{
a[i+1]=a[i];
}
a[i]=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");
}
while(1);
return 0;
}