for(i=0i<ni++) scanf("%d",&b[i])
第二个错误
int A(int a,int b[])
这个函数你想实现什么功能?嵌套返回最大值吗?
如果不是有要求必须采用嵌套 建议这样做
int A(int a,int b[]) //输入a:答袭族 数组容量;输入b:数组序列
{
int j, max_pos = 0
MAX = b[0]
for(j = 1j <aj ++)
if(b[j] >MAX) MAX= b[j], max_pos = j
return max_pos
}
如果清弊一定要嵌套的话 可以这样做
int A(int a, int b[])//输入a: 数组容量;输入b:数组序列
{
int max_pos
if(a == 1) {MAX = b[0]return 0}
max_pos = A(a - 1, b)
if(MAX <b[a - 1]) {MAX = b[a - 1]max_pos = a - 1}
return max_pos
}
最后一个问题是打印
由于是通过全局变量传递max值 所以要这样做
i = A(n, b)
printf("%d %d",i,MAX)
不然会出现打印max的时候 A(n,b)还没有执行的情况
找最大的值数清max=0
for(int i=0i<ni++) if(max<a[i]) max=a[i] printf("%d"薯孝前,max)
找最小的慎颂值
min=100
for(int i=0i<ni++) if(min>a[i]) min=a[i] printf("%d",min)
找某个值
scanf("%d",&value)
for(int i=0i<ni++) if(a[i]==value) {printf("%d",i)break}
下面一旁冲粗个 随机产生20个整数的判州数组,查找出大最值,如下代码:
#include <stdio.h>#include <stdlib.h>
#include <time.h>
int main()
{
int numbers[20], max, i
srand((unsigned int)time(NULL))
for (i = 0 i < 20 i++) {
numbers[i] = rand() % 100
}
max = numbers[0]
for (i = 1 i < 20 i++) {
if (numbers[i] > max) {
max = numbers[i]
}
}
printf("运镇最大值为%d\n", max)
system("pause")
return 0
}
运行结果:
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)