今日学习任务 | 数组,函数使用,static,external使用 |
今日任务完成情况 | 基本完成 |
今日开发中出现的问题汇总 | 一维数组和二维数组几种地址的表示方法 冒泡排序法的掌握。 函数的传值,形参和实参之间的关系 调用函数时要注意的问题。 指针和数组之间的关系。 函数的值传递和地址传递的不同,当涉及修改内存里面的值时,用地址传递。 static和extern的不同作用。 预处理,只做简单的替换 |
今日未解决问题 | 无 |
今日开发收获 | 对函数进一步认识,对指针与数组的关系进一步了解 |
自我评价 | 一般 |
其他 | 无 |
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;
}