
在线等答案 c语言问题
#include<stdio.h>voidmain(){inta[80];int*p;p=a;voidget(int*,int);voidexchange(int*,in...
#include<stdio.h>
void main()
{
int a[80];
int *p;
p=a;
void get(int *,int );
void exchange(int *,int);
void put(int* ,int );
get(a,10);
exchange(a,10);
put(a,10);
}
void get(int *p,int n)
{
int i;
printf("请输入十个数:\n");
for(i=0;i<n;i++,p++)
scanf("%d",p);
}
void exchange(int *p,int n)
{
int *max,*min,*b;
b=p;
int i;
for(i=0,max=b,min=b;i<n;i++,p++)
{ if(*p>=*max)
max=p;
else if(*p<*min)min=p;
}
if(max!=p&&min!=b)
{
{*max=*b,*b=*min,*min=*p;}
{*b=*max,*max=*p,*p=*b;}
}
}
void put(int *q,int n)
{
int j;
for(j=0;j<n;j++,q++)
printf("%-5d",*q);
}
这是一个交换最大值与最后数,交换最小数与第一个数的程序,能帮忙找一下错在那里呢吗?能在原程序上改吗?谢谢了。 展开
void main()
{
int a[80];
int *p;
p=a;
void get(int *,int );
void exchange(int *,int);
void put(int* ,int );
get(a,10);
exchange(a,10);
put(a,10);
}
void get(int *p,int n)
{
int i;
printf("请输入十个数:\n");
for(i=0;i<n;i++,p++)
scanf("%d",p);
}
void exchange(int *p,int n)
{
int *max,*min,*b;
b=p;
int i;
for(i=0,max=b,min=b;i<n;i++,p++)
{ if(*p>=*max)
max=p;
else if(*p<*min)min=p;
}
if(max!=p&&min!=b)
{
{*max=*b,*b=*min,*min=*p;}
{*b=*max,*max=*p,*p=*b;}
}
}
void put(int *q,int n)
{
int j;
for(j=0;j<n;j++,q++)
printf("%-5d",*q);
}
这是一个交换最大值与最后数,交换最小数与第一个数的程序,能帮忙找一下错在那里呢吗?能在原程序上改吗?谢谢了。 展开
4个回答
展开全部
#include<stdio.h>
main()
{
void input(int number[10]);
void output(int number[10]);
void max_min_value(int number[10]);
int number[10];
input(number);
max_min_value(number);
output(number);
getch();
}
void input(int number[10])
{
int i;
printf("please input 10 integer:\n");
for(i=0;i<10;i++)
scanf("%d",&number[i]);
}
void max_min_value(int number[10])
{
int *max,*min,*p,temp,*p1;
p1=number+10;
max=min=number;
for(p=number+1;p<p1;p++)
if(*p>*max) max=p;
else if(*p<*min) min=p;
temp=number[0];number[0]=*min;*min=temp;
temp=number[9];number[9]=*max;*max=temp;
}
void output(int number[10])
{
int *p;
for(p=number;p<number+10;p++)
printf("%9d",*p);
}
main()
{
void input(int number[10]);
void output(int number[10]);
void max_min_value(int number[10]);
int number[10];
input(number);
max_min_value(number);
output(number);
getch();
}
void input(int number[10])
{
int i;
printf("please input 10 integer:\n");
for(i=0;i<10;i++)
scanf("%d",&number[i]);
}
void max_min_value(int number[10])
{
int *max,*min,*p,temp,*p1;
p1=number+10;
max=min=number;
for(p=number+1;p<p1;p++)
if(*p>*max) max=p;
else if(*p<*min) min=p;
temp=number[0];number[0]=*min;*min=temp;
temp=number[9];number[9]=*max;*max=temp;
}
void output(int number[10])
{
int *p;
for(p=number;p<number+10;p++)
printf("%9d",*p);
}
展开全部
exchange()函数里面这句什么意思啊?
if(max!=p&&min!=b)
{
{*max=*b,*b=*min,*min=*p;}
{*b=*max,*max=*p,*p=*b;}
}
///////////////////////////////////////////////////////////
exchange()函数改为如下:
void exchange(int *p,int n)
{
int *max,*min,*b;
b=p;
int i;
for(i=0,max=b,min=b;i<n;i++,p++)
{
if(*p>=*max)
max=p;
else if(*p<*min)
min=p;
}
if (max != p)
{
int temp = *max;
*max = *(p-1);
*(p-1) = temp;
}
if (min != b)
{
int temp2 = *min;
*min = *b;
*b = temp2;
}
}
if(max!=p&&min!=b)
{
{*max=*b,*b=*min,*min=*p;}
{*b=*max,*max=*p,*p=*b;}
}
///////////////////////////////////////////////////////////
exchange()函数改为如下:
void exchange(int *p,int n)
{
int *max,*min,*b;
b=p;
int i;
for(i=0,max=b,min=b;i<n;i++,p++)
{
if(*p>=*max)
max=p;
else if(*p<*min)
min=p;
}
if (max != p)
{
int temp = *max;
*max = *(p-1);
*(p-1) = temp;
}
if (min != b)
{
int temp2 = *min;
*min = *b;
*b = temp2;
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include<stdio.h>
void get(int *p,int n)
{
int i;
printf("请输入十个数:\n");
for(i=0;i<n;i++,p++)
scanf("%d",p);
}
void exchange(int *p,int n)
{
int i;
int *max,*min,*b;
b=p;
for(i=0,max=b,min=b;i<n;i++,p++)
{ if(*p>=*max)
max=p;
else if(*p<*min) min=p;
}
if(max!=p&&min!=b)
{
{*max=*b,*b=*min,*min=*p;}
{*b=*max,*max=*p,*p=*b;}
}
}
void put(int *q,int n)
{
int j;
for(j=0;j<n;j++,q++)
printf("%-5d",*q);
}
void main()
{
int a[80];
int *p;
p=a;
get(p,10);
exchange(p,10);
put(p,10);
}
看看这个怎么样啊,不行的话不要怪我哦,我是上实验课给你弄的
void get(int *p,int n)
{
int i;
printf("请输入十个数:\n");
for(i=0;i<n;i++,p++)
scanf("%d",p);
}
void exchange(int *p,int n)
{
int i;
int *max,*min,*b;
b=p;
for(i=0,max=b,min=b;i<n;i++,p++)
{ if(*p>=*max)
max=p;
else if(*p<*min) min=p;
}
if(max!=p&&min!=b)
{
{*max=*b,*b=*min,*min=*p;}
{*b=*max,*max=*p,*p=*b;}
}
}
void put(int *q,int n)
{
int j;
for(j=0;j<n;j++,q++)
printf("%-5d",*q);
}
void main()
{
int a[80];
int *p;
p=a;
get(p,10);
exchange(p,10);
put(p,10);
}
看看这个怎么样啊,不行的话不要怪我哦,我是上实验课给你弄的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
烫烫烫烫烫烫烫烫烫烫烫烫烫烫
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询