17-1-3 1601上机作业
2017-01-03 15:26
211 查看
本实验习题1-4要求用指针方法处理
1、输入3个整数,按由大到小的顺序输出。
(用指针真的好麻烦,等会用C艹写一个快排,感受一下C艹的威力)
多简单,短短11行代码,就搞定了。
等学到C++的时候就会知道有种东西叫做迭代器,其实也算是种指针吧。
2、写一个函数,求一个字符串的长度。在main函数中输入字符串,并输出其长度
ad8e
。
3、编写一个程序,输入月份号,输出该月的英文月名。例如,输入“3”,则输出“March”,要求用指针数组处理。
4、输入10个整数,将其中最小的数与第一个数对换,把最大的数与最后一个数对换。写3个函数:①输入10个数;②进行处理;③输出10个数。
5编写一个C程序,将10个整型数字输入到一个名为temp的数组中。每输入一个数字,计算一次已经输入的数字之和。10个数字全输入完毕之后,输出这10个数字以及他们的平均值。
6编写一程序将字符串“This is a test”存储到名为strtest的数组中。并使用以下语句输出:
for ( i = 0; i <=14; i++ )
printf ( “%c”, strtest[i] );
1、输入3个整数,按由大到小的顺序输出。
#include<stdio.h> void pailie(int *a,int *b,int *c) { int temp; if(*b<*c) { temp=*b; *b=*c; *c=temp; } if(*a<*b) { temp=*a; *a=*b; *b=temp; } if(*b<*c) { temp=*b; *b=*c; *c=temp; } } int main() { int a,b,c; scanf("%d %d %d",&a,&b,&c); pailie(&a,&b,&c); printf("%d %d %d\n",a,b,c); return 0; }
(用指针真的好麻烦,等会用C艹写一个快排,感受一下C艹的威力)
注意,以下为C++代码!!!
#include<cstdio> #include<algorithm> using namespace std; int main() { int a[3]; scanf("%d %d %d",&a[0],&a[1],&a[2]); sort(a,a+3,greater<int>()); printf("%d %d %d\n",a[0],a[1],a[2]); return 0; }
多简单,短短11行代码,就搞定了。
等学到C++的时候就会知道有种东西叫做迭代器,其实也算是种指针吧。
2、写一个函数,求一个字符串的长度。在main函数中输入字符串,并输出其长度
ad8e
。
#include<stdio.h> #include<string.h> #include<math.h> int str(char *p) { return strlen(p); } int main() { char a[10000]; gets(a); printf("%d",str(a)); return 0; }
3、编写一个程序,输入月份号,输出该月的英文月名。例如,输入“3”,则输出“March”,要求用指针数组处理。
#include<stdio.h> char a1[]={"January"},a2[]={"February"},a3[]={"March"},a4[]={"April"},a5[]={"May"},a6[]={"June"},a7[]={"July"},a8[]={"August"}, a9[]={"September"},a10[]={"October"},a11[]={"November"},a12[]={"December"}; int main() { int *p[13]; p[1]=a1; p[2]=a2; p[3]=a3; p[4]=a4; p[5]=a5; p[6]=a6; p[7]=a7; p[8]=a8; p[9]=a9; p[10]=a10; p[11]=a11; p[12]=a12; int n; scanf("%d",&n); printf("%s\n",p ); return 0; }
4、输入10个整数,将其中最小的数与第一个数对换,把最大的数与最后一个数对换。写3个函数:①输入10个数;②进行处理;③输出10个数。
#include<stdio.h> void print(int *a) { int i; for(i=0;i<10;i++) { scanf("%d",&a[i]); } } void solve(int *a) { int i,t,temp; t=0; for(i=0;i<10;i++) { if(a[i]>a[t]) t=i; } temp=a[t]; a[t]=a[9]; a[9]=temp; t=0; for(i=0;i<10;i++) { if(a[i]<a[t]) t=i; } temp=a[t]; a[t]=a[0]; a[0]=temp; } void scan(int *a) { int i; for(i=0;i<10;i++) { printf("%d ",a[i]); } printf("\n"); } int main() { int a[20]; print(a); solve(a); scan(a); return 0; }
5编写一个C程序,将10个整型数字输入到一个名为temp的数组中。每输入一个数字,计算一次已经输入的数字之和。10个数字全输入完毕之后,输出这10个数字以及他们的平均值。
#include<stdio.h> int main() { int temp[100]; int i; int sum=0; for(i=0;i<10;i++) { scanf("%d",&temp[i]); sum+=temp[i]; } for(i=0;i<10;i++) { printf("%d ",temp[i]); } printf("\n"); printf("Average=%f\n",sum/10.0); return 0; }
6编写一程序将字符串“This is a test”存储到名为strtest的数组中。并使用以下语句输出:
for ( i = 0; i <=14; i++ )
printf ( “%c”, strtest[i] );
#include<stdio.h> int main() { char strtest[]={"This is a test"}; int i; for(i=0;i<14;i++) { printf("%c",strtest[i]); } printf("\n"); return 0; }
相关文章推荐