首页 > 代码库 > 实验十一 C的指针
实验十一 C的指针
11.1
#include<stdio.h>
int main()
{
int a[10]={1,2,3,4,5,6,7,8,9,10},i,*p,sum=0;
for(p=&a[0],i=0;i<10;i++,p++)
{
if(*p%2==0)
sum+=*p;
}
printf("%d\n",sum);
return 0;
}
11.2
#include<stdio.h>
int main()
{
int i=0,j=0,str=0;
char a[100],*p;
gets(a);
for(p=&a[0];*p!=‘\0‘;p++)
{
if((*p)>=65&&(*p)<=90)
i++;
else if((*p)>=97&&(*p)<=122)
j++;
str++;
}
printf("大写:%d\n小写:%d\n总数:%d\n其他:%d\n",i,j,str,str-i-j);
return 0;
}
11.3
#include<stdio.h>
int main()
{
char a[]="abcdefghijkl",*p;
for(p=&a[0];*p!=‘\0‘;p=p+2)
{
printf("%c",*p);
}
printf("\n");
return 0;
}
11.4
#include<stdio.h>
int main()
{
int a[15],*p,i;
for(p=&a[14],i=0;i<15;i++,p--)
scanf("%d",p);
for(p=&a[0],i=0;i<15;i++,p++)
printf("%d ",*p);
printf("\n");
return 0;
}
11.5
#include<stdio.h>
int main()
{
int a[10],*p,i;
double ave=0;
for(p=&a[9],i=0;i<10;i++,p--)
{
scanf("%d",p);
ave+=*p;
}
ave=ave/10.0;
for(p=&a[0],i=0;i<10;i++,p++)
{
if(ave<(*p))
printf("%d ",*p);
}
printf("\n");
return 0;
}
11.6
#include<stdio.h>
int main()
{
int a[4][5],*p,minij,maxij,sum=20,max,min;
for(p=&a[0][0];sum>0;sum--,p++)
scanf("%d",p);
p=&a[0][0];
max=min=a[0][0];
for(sum=1;sum<=20;sum++,p++)
{
if(max<*p)
{
max=*p;
maxij=sum;
}
if(min>*p)
{
min=*p;
minij=sum;
}
}
printf("max=%d,行下标为%d,列下标为%d\n",max,(maxij-1)/5,maxij-((maxij-1)/5)*5);
printf("min=%d,行下标为%d,列下标为%d\n",min,(minij-1)/5,minij-((minij-1)/5)*5);
}
11.7
#include<stdio.h>
int main()
{
double a[10],*p,ave=0;
int i,m,n;
for(p=&a[0],i=0;i<10;p++,i++)
scanf("%lf",p);
scanf("%d%d",&m,&n);
if(m+n>11)
{
for(p=&a[m-1],i=m;i<=10;i++,p++)
ave+=(*p);
ave=ave/(11.0-m);
}
else
{
for(p=&a[m-1],i=0;i<n;i++,p++)
ave+=*p;
ave=1.0*ave/n;
}
printf("%f\n",ave);
return 0;
}
实验十一 C的指针