学习日志 姓名:刘易中 日期:2018/7/10
今日学习任务 |
C语言的数组,函数和预处理 |
今日任务完成情况 |
编译了C语言关于一维数组,二维数组和字符数组程序。还有C语言的预处理,static的认识及应用和宏函数的程序。 |
今日开发中出现的问题汇总 |
算法结构的不正确和不完整 对于冒泡函数没有记牢 对一维数组和二维数组几种地址的表示方法不够了解和清楚。
|
今日未解决问题 |
无 |
今日开发收获 |
我了解到了一维数组和二维数组的不同地址表示方法。变量的存储类型:局部变量默认为auto型。register型变量个数受限,且不能为long,double,float型。 |
自我评价 |
今天又回顾了更多以前学过的知识,也学习到了新知识,我感到受益匪浅,但不是特别能掌握,还需要多加练习和理解。 |
其他 |
无 |
1,字符数组中在指定位置插入字符
#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);
}
}
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<stdio.h>
#include<time.h>
#include<stdlib.h>
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<num;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;
}