实验十一 C的指针

指针编程

11.1

 

 1 #include<stdio.h>
 2 
 3 int main()
 4 {
 5     int a[10]={1,2,3,4,5,6,7,8,9,10},i,*p,sum=0;
 6 
 7     for(p=&a[0],i=0;i<10;i++,p++)
 8     {
 9         if(*p%2==0)
10             sum+=*p;
11     }
12 
13     printf("%d\n",sum);
14 
15     return 0;
16 }

 

11.2

 

 1 #include<stdio.h>
 2 
 3 int main()
 4 {
 5     int i=0,j=0,str=0;
 6     char a[100],*p;
 7     gets(a);
 8 
 9     for(p=&a[0];*p!='\0';p++)
10     {
11         if((*p)>=65&&(*p)<=90)
12             i++;
13         else if((*p)>=97&&(*p)<=122)
14             j++;
15 
16         str++;
17     }
18 
19     printf("大写:%d\n小写:%d\n总数:%d\n其他:%d\n",i,j,str,str-i-j);
20 
21     return 0;
22 }

 

11.3

 

 1 #include<stdio.h>
 2 
 3 int main()
 4 {
 5     char a[]="abcdefghijkl",*p;
 6 
 7     for(p=&a[0];*p!='\0';p=p+2)
 8     {
 9         printf("%c",*p);
10     }
11 
12     printf("\n");
13 
14     return 0;
15 }

 

11.4

 

 1 #include<stdio.h>
 2 
 3 int main()
 4 {
 5     int a[15],*p,i;
 6 
 7     for(p=&a[14],i=0;i<15;i++,p--)
 8         scanf("%d",p);
 9     
10     for(p=&a[0],i=0;i<15;i++,p++)
11         printf("%d ",*p);
12 
13     printf("\n");
14 
15     return 0;
16 }

 

11.5

 

 1 #include<stdio.h>
 2 
 3 int main()
 4 {
 5     int a[10],*p,i;
 6     double ave=0;
 7 
 8     for(p=&a[9],i=0;i<10;i++,p--)
 9     {
10         scanf("%d",p);
11         ave+=*p;
12     }
13     ave=ave/10.0;
14     
15     for(p=&a[0],i=0;i<10;i++,p++)
16     {
17         if(ave<(*p))
18             printf("%d ",*p);
19     }
20 
21     printf("\n");
22 
23     return 0;
24 }

 

11.6

 

 1 #include<stdio.h>
 2 
 3 int main()
 4 {
 5     int a[4][5],*p,minij,maxij,sum=20,max,min;
 6 
 7     for(p=&a[0][0];sum>0;sum--,p++)
 8         scanf("%d",p);
 9     
10     p=&a[0][0];
11     max=min=a[0][0];
12 
13     for(sum=1;sum<=20;sum++,p++)
14     {
15         if(max<*p)
16         {
17             max=*p;
18             maxij=sum;
19         }
20 
21         if(min>*p)
22         {
23             min=*p;
24             minij=sum;
25         }
26     }
27 
28     printf("max=%d,行下标为%d,列下标为%d\n",max,(maxij-1)/5,maxij-((maxij-1)/5)*5);
29     printf("min=%d,行下标为%d,列下标为%d\n",min,(minij-1)/5,minij-((minij-1)/5)*5);
30 }

 

11.7

 

 1 #include<stdio.h>
 2 
 3 int main()
 4 {
 5     double a[10],*p,ave=0;
 6     int i,m,n;
 7 
 8     for(p=&a[0],i=0;i<10;p++,i++)
 9         scanf("%lf",p);
10 
11     scanf("%d%d",&m,&n);
12 
13     if(m+n>11)
14     {
15         for(p=&a[m-1],i=m;i<=10;i++,p++)
16             ave+=(*p);
17 
18         ave=ave/(11.0-m);
19     }
20     else
21     {
22         for(p=&a[m-1],i=0;i<n;i++,p++)
23             ave+=*p;
24 
25         ave=1.0*ave/n;
26     }
27 
28     printf("%f\n",ave);
29 
30     return 0;
31 } 

 

posted on 2017-05-11 12:29  么么打123  阅读(187)  评论(0)    收藏  举报