自定义函数之整数处理
本帖最后由 一世轻尘 于 2021-1-5 10:45 编辑哪里有问题鸭,一般是特例没满足
#include<stdio.h>
#define N 10
void input(int a[]);
void change(int a[]);
void output(int a[]);
int main()
{
int a;
input(a);
change(a);
output(a);
return 0;
}
void input(int a[])
{
for(int i=0;i<N;i++)
scanf("%d",&a);
}
void change(int a[])
{
int min=a,max=a,k1=0,k2=0;
for(int i=0;i<N;i++)
{
if(a<=min)
{
min=a;
k1=i;
}
if(a>=max)
{
max=a;
k2=i;
}
}
if(k1==(N-1)&&k2==0)
{
int temp;
temp=a;
a=a;
a=temp;
}
else
{
a=a;
a=min;
a=a;
a=max;
}
}
void output(int a[])
{
for(int i=0;i<N;i++)
{
printf("%d ",a);
}
} 本帖最后由 风过无痕1989 于 2021-1-5 10:53 编辑
你40行 ~ 45 行,好像有问题,temp 没有使用, 以下没有上机测试,只是给出了交换的过程:
int temp;
temp = a;
a = a;
a = temp;
if(k1!=N-1)
temp = a;
a=a;
a=temp; 风过无痕1989 发表于 2021-1-5 10:47
你40行 ~ 45 行,好像有问题,temp 没有使用
刚改了,还是不行 风过无痕1989 发表于 2021-1-5 10:47
你40行 ~ 45 行,好像有问题,temp 没有使用
被这个题完败{:10_247:} 一世轻尘 发表于 2021-1-5 10:49
刚改了,还是不行
你这是要逼我上机呀,好吧,我试试 一世轻尘 发表于 2021-1-5 10:49
刚改了,还是不行
#include<stdio.h>
#define N 10
void input(int a[]);
void change(int a[]);
void output(int a[]);
int main()
{
int a;
input(a);
change(a);
output(a);
return 0;
}
void input(int a[])
{
for (int i = 0;i<N;i++)
scanf("%d", &a);
}
void change(int a[])
{
int min = a, max = a, k1 = 0, k2 = 0;
for (int i = 0;i<N;i++)
{
if (a <= min)
{
min = a;
k1 = i;
}
if (a >= max)
{
max = a;
k2 = i;
}
}
int temp;
temp = a;
a = a;
a = temp;
temp = a;
a = a;
a = temp;
}
void output(int a[])
{
for (int i = 0;i<N;i++)
{
printf("%d ", a);
}
} 一世轻尘 发表于 2021-1-5 10:50
被这个题完败
代码已经在上面了,这是运行截图
#include<stdio.h>
#define N 10
void input(int a[]);
void change(int a[]);
void output(int a[]);
int main()
{
int a;
input(a);
change(a);
output(a);
return 0;
}
void input(int a[])
{
for(int i=0;i<N;i++)
scanf("%d",&a);
}
void change(int a[])
{
int min=a,max=a,k1=0,k2=0;
for(int i=0;i<N;i++)
{
if(a<=min)
{
min=a;
k1=i;
}
if(a>=max)
{
max=a;
k2=i;
}
}
if(k1==N-1&&k2==0)
{
a=max;
a=min;
}
else if(k2==0)
{
a=min;
a=a;
a=max;
}
else if (k1==N-1)
{
a=max;
a=a;
a=min;
}
else
{
a=a;
a=min;
a=a;
a=max;
}
}
void output(int a[])
{
for(int i=0;i<N;i++)
{
printf("%d ",a);
}
} sunrise085 发表于 2021-1-5 11:01
所以说到底哪有问题,我感觉没区别啊 本帖最后由 jackz007 于 2021-1-5 11:57 编辑
#include<stdio.h>
#define N 10
void input(int a[])
{
for(int i = 0 ; i < N ; i ++) scanf("%d" , & a) ;
}
void change(int a[])
{
int i , m, t ;
for(m = 0 , i = 1 ; i < N ; i ++) if(a < a) m = i ;
if(m) {
t = a ;
a = a ;
a = t ;
}
for(m = 1 , i = 2 ; i < N ; i ++) if(a > a) m = i ;
if(m != N - 1) {
t = a ;
a = a ;
a = t ;
}
}
void output(int a[])
{
for(int i=0 ; i < N ; i ++) printf("%d " , a) ;
printf("\n") ;
}
int main(void)
{
int a;
input(a);
change(a);
output(a);
return 0;
}
页:
[1]