本文目录一览:
怎样用C语言编出在n个数里找最大值的程序?
找最大的值
max = 0;
for(int i = 0; i < n; i++) if(max < a[i]) max = a[i];
printf("%d", max);
找最小的值
min = 100;
for(int i = 0; i < n; i++) if(min > a[i]) min = a[i];
printf("%d", min);
找某个值
scanf("%d", value);
for(int i = 0; i < n; i++) if(a[i] == value) {printf("%d", i); break;}
求c语言程序:用一个函数求N个数的最大值和最小值。。。
#include<stdio.h>
int max(int n)
{
int i, x, f;
scanf("%d", &f);
for(i = 1; i < n; i++)
{
scanf("%d", &x);
if(x > f) f = x;
}
return f;
}
int main()
{
int n;
printf("有几个数:");
scanf("%d", &n);
printf("其中最大的数是:%d\n", max(n));
return 0;
}
#include<stdio.h>
int min;
int maxmin(int n)
{
int i, x, f;
scanf("%d", &f);
min = f;
for(i = 1; i < n; i++)
{
scanf("%d", &x);
if(x > f) f = x;
else if(x < min) min = x;
}
return f;
}
int main()
{
int n, mm;
printf("有几个数:");
scanf("%d", &n);
mm = maxmin(n);
printf("其中最大的数是:%d\n最小的数是:%d\n", mm, min);
return 0;
}
C程序:找N个数中最大值
第一个错误:
for(i = 1; i <= n; i++) scanf("%d", &b[i]);
C语言的下标是从 0
到 n-1
的,这里错了,应该是:
for(i = 0; i < n; i++) scanf("%d", &b[i]);
第二个错误:
int A(int a, int b[])
这个函数你想实现什么功能?嵌套返回最大值吗? 如果不是有要求必须采用嵌套,建议这样做:
int A(int a, int b[]) // 输入a:数组容量;输入b:数组序列
{
int j, max_pos = 0;
int MAX = b[0];
for(j = 1; j < a; j++)
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)
{
int 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)
还没有执行的情况。