题目内容:利用指针编写一函数,输入3个整数,按由大到小的顺序将它们输出。
输入格式:
%d
输出格式:
%3d
输入样例:
25 68 17
输出样例:
68 25 17
时间限制:500ms 内存限制:32000kb
#include
int sort(int *pa,int *pb,int *pc){
int temp;
if(*pa>*pb)
{temp=*pa;*pa=*pb;*pb=temp;}
if(*pa>*pc)
{temp=*pa;*pa=*pc;*pc=temp;}
if(*pb>*pc)
{temp=*pb;*pb=*pc;*pc=temp;}
}
int main(){
int a,b,c;
int *pa,*pb,*pc;
scanf("%d%d%d",&a,&b,&c);
pa=&a;pb=&b;pc=&c;
sort(pa,pb,pc);
printf("%3d%3d%3d",c,b,a);
return 0;
}
我觉得这个第一题题解我写的很辣鸡,我本来想用数组加冒泡排序来写的,但题目要求用指针编写函数,我卡在sort函数中,在sort函数中我打算用指针来写冒泡排序,可是一直不对。呜呜呜,指针杀我,但我发现函数中不用指针OJ系统也会过,下面我把没用指针编写函数的题解贴出来,等周末有空再改改,希望给大家一个参考。
#include
#define N 3
int main(){
int i,a[N];
int sort(int a[N]);
for(i=0;i<N;i++)
scanf("%d",&a[i]);
sort(a);
for(i=N-1;i>=0;i--)
printf("%3d",a[i]);
return 0;
}
int sort(int a[N]){
int i,j,temp;
for(i=0;i<N-1;i++){
for(j=1;j<N-i;j++){
if(a[j-1]>a[j]){
temp=a[j-1];
a[j-1]=a[j];
a[j]=temp;
}
}
}
return a[j];
}
题目内容:
有若干个学生的成绩(每个学生有4门课程),要求在用户输入学生序号以后,能输出该学生的全部成绩。用指向数组的指针变量实现。
使用数组 float score[][4]={{60,70,80,90},{56,89,67,88},{34,78,90,66}}
输入格式:
%d
输出格式:
%8.2f
输入样例:
1
输出样例:
56.00 89.00 67.00 88.00
时间限制:500ms 内存限制:32000kb
#include
int main(){
float *p,score[][4]={{60,70,80,90},{56,89,67,88},{34,78,90,66}};
int n,i;
p=score[0];
scanf("%d",&n);
p=p+4*n;
for(i=0;i<4;i++)
printf("%8.2f",*(p+i));
return 0;
}
我以为第二题会很难的,没想到比第一题好写多了。
好了,第十二周的题解已经更新啦,很抱歉因为电脑原因拖了两天
看完记得点赞评论哦!
你的点赞评论分享就是我的动力。
下次见!
**
——》第十三周编程题题解《——