为什么无法得到想得到的结果????
#include<stdio.h>int i, j;
void max( )
{
int max,a;
for (i = 0; i < 10;i++)
{
for (j = 10; j>0; j--)
{
if (a < a)
max = a;
else
max = a;
}printf("数组中最大的数为%d", max);
}
}
void min()
{
int min, a;
for (i = 0; i < 10; i++)
{
for (j = 10; j>0; j--)
{
if (a < a)
min = a;
else
min= a;
}printf("数组中最小的数为%d", min);
}
}
main()
{
int a;
for (i = 0; i < 10; i++)
{
scanf_s("%d", a);
printf("%d", a);
}
max(a);
min(a);
} 本帖最后由 Cool_Breeze 于 2020-3-10 21:31 编辑
把数组a移到申明i,j的后面(作用域你还没有学吧!) 首先,你是要对数组进行排序对吧?
那为什么在定义的时候没有传入参数呢?
其次,你的调用方式是
max(a)
这样的话,只会对a的10号元素进行操作
Cool_Breeze 发表于 2020-3-10 21:29
把数组a移到申明i,j的后面(作用域你还没有学吧!)
没用
我这个是想用冒泡法,找出数组中的最大值与最小值
但是实际的操作结果是只能输入数组的数据就结束了
根本达不到预想的结果
qiuyouzhi 发表于 2020-3-10 21:34
首先,你是要对数组进行排序对吧?
那为什么在定义的时候没有传入参数呢?
其次,你的调用方式是
该怎么进行调整呢???
本帖最后由 jackz007 于 2020-3-10 21:41 编辑
#include <stdio.h>
int min(int a[] , int n)
{
int i , m ;
for(m = a , i = 1 ; i < n ; i ++) if(a < m) m = a ;
return m ;
}
int max(int a[] , int n)
{
int i , m ;
for(m = a , i = 1 ; i < n ; i ++) if(a > m) m = a ;
return m ;
}
int main(void)
{
int a , i ;
for(i = 0 ; i < 10 ; i ++) scanf("%d" , & a) ;
printf("数组中最小的数为:%d\n" , min(a , 10)) ;
printf("数组中最大的数为:%d\n" , max(a , 10)) ;
}
编译、运行实况:
C:\Bin>g++ -o x x.c
C:\Bin>x
99
21
33
55
12
5
78
32
30
10
数组中最小的数为:5
数组中最大的数为:99
C:\Bin> WFR 发表于 2020-3-10 21:37
该怎么进行调整呢???
#include<stdio.h>
int i, j, a;
int max1(int a[]);
int min1(int a[]);
int max1(int a[])
{
int max;
for (i = 0; i < 10;i++)
{
for (j = 10; j>0; j--)
{
if (a < a)
max = a;
else
max = a;
}
}
return max;
}
int min1(int a[])
{
int min;
for (i = 0; i < 10; i++)
{
for (j = 10; j > 0; j--)
{
if (a < a)
min = a;
else if (a > a)
min = a;
}
}
return min;
}
int main()
{
for (i = 0; i < 10; i++)
{
scanf("%d", &a);
//printf("%d\n", a);
}
int amax = max1(a);
int amin = min1(a);
printf("最大值:%d 最小值:%d", amax, amin-1);
return 0;
}
先写一个
页:
[1]