1.用指针变量输出结构体数组元素
struct student
{
int num ;
char * name;
char sex;
int age;
}stu[5]={{1001,"lihua",'F',18},{1002,"liuxing",'M',19},{1003,"huangke",'F',19},{1004,"fengshou",'F',19},
{1005,"Wangming",'M',18}};
void fun()
{
int i;
struct student *ps;
for(ps=stu;ps<stu+5;ps++)
{
printf("%d\t%-10s\t\t%c\t%d\t\n",ps->num,ps->name,ps->sex,ps->age);
}
for(i=0;i<5;i++)
{
printf("%d\t%d\t\n",stu[i].num,stu[i].age);
}
}
2.打印以字母组成的三角形
void fun(int n)
{
char ch='A';
int i,j;
if(n<11)
{
for()i=0;i<n;i++)
{
for(j=0;j<n-i;j++)
{
printf("%2c",ch);
ch++;
}
}
}
}

3.一个球从 100m 高度自由落下,每次落地后反跳回原高度的一半,再落下,再反弹。求它在第 10 次落地时,共经过多少米,第 10 次反弹多高
void fun()
{
int sn=100,hn=sn/2,n;
for(n=2;n<11;n++)
{
sn=sn+hn*2;
hn/=2;
}
printf(" 第 10 次落地时共经过 %d 米\n",sn);
printf(" 第 10 次反弹 %d 米\n",hn);
}
4.字符串求子串函数以及BF算法简单的匹配模式
typedef struct
{
char * ch;
int length;
}Str,*pStr;
void subString(pStr sub,Str str,int pos,int len)
{
int i;
if(pos<1||len>str.length||len<0)
{
printf("pos小于1||截取长度大于主串长度||截取长度小于0||截取长度大于主串从pos开始到结束的长度");
exit(-1);
}
if(sub->ch)
free(sub->ch);
if(len==0)
{
sub->ch=NULL;
sub->length=0;
}
sub->ch=(char*)malloc(sizeof(char*len));
for(i=0;i<len;i++)
sub->ch[i]=str.ch[pos+i-1];
sub->length=len;
}
int BfString(Str str,Str sub)
{
int i=1,j=1,k=i;
while(i<str.length&&j<sub.length)
{
if(str.ch[i]==sub.ch[j])
{
i++;
j++;
}
else
{
j=1;
i=++k;
}
}
if(j==sub.length)
return k;
else
return 0;
}
5.求正整数各位数字的和eg:123=1+2+3=6
void fun()
{
int n,num,sum,tmp;
printf("请输入要计算的那个数字");
scanf("%d",&num);
while(num)
{
tmp=num%10;
sum+=tmp;
sum/=10;
}
printf("num=%d,sum=%d",num,sum);
}