学习日志 姓名:郭富民 日期:2018/7/10
今日学习任务 | C语言的数组,函数和预处理 |
今日任务完成情况 | 介绍了C语言的数组,包括一维数组,二维数组和字符数组。按照计划完成,编译运行了4个程序。 老师说明了C语言的函数,还介绍了static和extern。按照计划完成,编译运行了5个程序。 C语言的预处理,按照计划完成,编译运行了1个程序。 |
今日开发中出现的问题汇总 |
对一维数组和二维数组几种地址的表示方法不够了解和清楚。 对冒泡排序法没有熟练的掌握。 函数的传值,形参和实参之间的关系不够了解。 调用函数时要注意的问题。 指针和数组之间的关系。 函数的值传递和地址传递的不同,当涉及修改内存里面的值时,用地址传递。 static和extern的不同作用。 预处理,只做简单的替换。 |
今日未解决问题 | 指针和数组之间的关系 |
今日开发收获 |
通过今天的实训,让我对C语言的数组和函数有了更深一步的认识。我对一维数组和二维数组的不同地址表示方法有了新的了解,也知道了函数的作用,可以让程序更加简洁。我从中学习到了在稍有一点不同的情况下,可能就会有千差万别。 |
自我评价 | 今天的实训,我还是一直认真的对待它。我也从中学到了很多关于C语言数组与函数的知识,感觉很有意义。 |
其他 |
无 |
1,字符数组中在指定位置插入字符
#include
#include
void input(char a[])
{
printf("输入字符串\n");
scanf("%s",a);
}
int count(char a[])
{
return strlen(a);
}
void ins(char x[],char y[],int s,int n)
{
char ch[10];
int i,j;
printf("输入插入字符\n");
scanf("%s",ch);
if(s>=n)
{
for(i=0;i
y[i]=x[i];
}
y[i]=ch[0];
for(j=i,i++;i<=s;i++,j++)
{
y[i]=x[j];
}
for(i=0;i {
x[i]=y[i];
}
}
if(s
printf("input error\n");
while(1);
}
}
int main()
{
char a[100]={0},b[100]={0},ch;
int str,num;
input(a);
str=count(a);
printf("输入在第几个字符后插入字符\n");
scanf("%d",&num);
ins(a,b,str,num);
printf("插入后\n");
printf("%s\n",a);
while(1);
return 0;
}
2,设计一个洗牌发牌的程序
#include
#include
#include
int main()
{
int a[4][13],d,i,j,m,num=0,b[52]={0};
srand(time(NULL));
for(i=0;i<4;i++)
{
for(j=0;j<13;j++)
{
a[i][j]=j+1;
}
}
for(;num<=52;)
{
d=rand()%52;
for(m=0;m
if(d==b[m])
{
break;
}
}
if(m==num)
{
b[num]=d;
switch(d/13)
{
case 0:printf("红桃");break;
case 1:printf("方块");break;
case 2:printf("草花");break;
case 3:printf("黑桃");break;
}
num++;
printf("%2d\%c",a[d/13][d%13],num%13==0 && num!=0?'\n':' ');
}
}
return 0;
}