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