用C语言编写一个程序,求n个数中的最大值和最小值,要求用函数完成。
@
741852963一
楼上的朋友,对于你给的答案,我想说点我自己的想法,望不要见怪。
1.
LZ要的是一个函数,需要在main
函数中进行调用,而不是要完整的main函数。
2.
LZ要的函数功能只要求
求出最大值跟最小值,而不需要排序。
3。你的程序中用的是a[10],但n
是可以随便输入的,这就存在一个问题:
n
要是大于10时,
a[n]
就会溢出。
下面是我编写的一个程序,当然我不能保证它是完全正确的,希望大家提意见。
float
fun(int
N,
float
a[
])
{
int
i;
float
max,
min;
max=min=a[0];
for
(i=1;i<N;i++)
{
if
(a[i]>=max)
max=a[i];
if
(a[i]<=min)
min=a[i];
}
prinft("max=
"
%f
",
min=
"
%f,
max,min);
return
0;
}
#include
//、、c语言编程实现某一个数组中最大值,最小值之和。并要求最大最小值用子函数实现
int Max(int a[], int n);
int Min(int a[], int n);
int Sum(int a, int b);
int main( )
{
int a[10];
int i;
printf("请输入10个数:
");
for (i = 0; i < 10; i++) {
scanf("%d", &a[i]);
}
printf("sum = %d
",Sum(Max(a, 10), Min(a, 10)));
return 0;
}
int Max(int a[], int n)
{
int i;
int max = a[0];
for (i = 0; i < 10; i++) {
if (max < a[i]) {
max = a[i];
}
}
return max;
}
int Min(int a[], int n)
{
int i;
int min = a[0];
for (i = 0; i < 10; i++) {
if (min > a[i]) {
min = a[i];
}
}
return min;
}
int Sum(int a, int b)
{
return a + b;
}
代码如下(用冒泡排序法):
#include <stdio.h>
void bubble(int a[], int n)
{
int i, j, temp;
for (j = 0; j < n - 1; j++)
for (i = 0; i < n - 1 - j; i++)
{
if(a[i] > a[i + 1])
{
temp = a[i];
a[i] = a[i + 1];
a[i + 1] = temp;
}
}
}
int main(void)
{
int a[10];
for(int i = 0; i < 10; i++)
scanf("%d", &a[i]);
bubble(a, 10);
printf("Max: %d, min: %d", a[9], a[0]);
return 0;
}
#include<stdio.h>
#define N 1024
void fun(int *a,int n,int *max,int *min) { int i;
*max=*min=a[0];
for ( i=1;i<n;i++ ) if ( *max<a[i] ) *max=a[i]; else if ( *min>a[i] ) *min=a[i];
}
void main() { int i,n,max,min,a[N];
scanf("%d",&n); if ( n>N ) n=N;
for ( i=0;i<n;i++ ) scanf("%d",&a[i]);
fun(a,n,&max,&min);
printf("最大值=%d,最小值=%d。
",max,min);
}
用C语言编写一个程序,求n个数中的最大值和最小值,要求用函数完成。视频
相关评论:
郗郝姚include<stdio.h> int main(){ int n,i;int sum=0;printf("请输入要累加的数字n:");scanf("%d",&n);for(i=0;i<=n;i++){ sum=sum+i;} printf("累加的和为%d",sum);return 0;}
郗郝姚这是数学问题,相当于排列组合问题。求N个数字以内的含有M的方法,对于以上问题即求4个数字(9999)以内含有4的个数。千位为"4"的个数是10*10*10;百位、十位、个位为"4"的个数也是10*10*10;所以10000以为的个数为4000个,公式为:N*pow(10, N-1);但是这里面有重复,例如"4444"都满足上面4...
郗郝姚C语言编程:include <stdio.h> int main(int argc, char *argv[]){ int a;int n;int num=1;\/\/计算每次n个a的值 int sum=0;\/\/计算总和 int i;scanf("%d%d",&a,&n);for(i=0;i<n;i++){ if(i==0)\/\/第一次 { num=a;sum+=num;} else\/\/以后的都满足关系:这个数等于前...
郗郝姚include <stdio.h>int Func(int n){if(n < 2)return 1;else return n*Func(n-1);} void main(){int n =0,m=0;printf("请输入一个正整数:")scanf("%d",&n);m=Func(n);printf("%d!=%d\\n",n,m);} 在以上程序代码中,Func()为递归函数,主函数main()中接收键盘输入整数...
郗郝姚因此,可以用一个循环,从3-n,逐项求解。【程序代码】#include <stdio.h> \/\/加载基本输入输出头文件 int main() \/\/主函数 {int n,a=0,b=1,c,i; \/\/项数n,前二项a,前一项b,第n项c,循环变量i printf("请输入第n项:"); \/\/输出提示信息 scanf("%d",&n); \/\/从...
郗郝姚result = 0; int i = 0; cin >> a >> n; for (; i < n; i++) { result += getValue(a, i); } cout << result << endl; return 0;}注意:自己替换一下输入输出!C语言的输入输出比较麻烦所以,就换成了C++的写法!总体的算法不变 ...
郗郝姚{ if(n<1) return 1;return n*fact(n-1);} else long fact(int n){ long t=1;for(int i=2;i<=n;i++)t*=i;return t;} endif main(){ long s=0;for(int i=1;i<=10;i++)s+=fact(i);printf("%ld\\n",s);} 2。include "stdio.h"bool prime(int n){ if(n==1)...
郗郝姚include<stdio.h>int main(){ int i, sum = 0; for(i = 1; i <= 1000; i++) { sum += i; } printf("结果为:%d", sum); return 0;}书写的时候注意一些规范,包括语句的对齐,一些特定位置的空格使用,初学编程,养成良好的编码习惯很重要 ...
郗郝姚源程序代码如下:include "pch.h"define _CRT_SECURE_NO_WARNINGS\/\/VS环境下需要,VC不需要 include<stdio.h> int main(){ char c = 0;\/\/定义输入字符变量 int num_count = 0;\/\/数字个数 int bigalp_count = 0;\/\/大写字母个数 int littlealp_count = 0;\/\/小写字母个数 int emp_count...
郗郝姚include <stdio.h> int main(){ int n,i,a,b;double sum;scanf("%d",&n);for(i=0,a=b=1,sum=0;i<n;++i){ sum+=(double)a\/b*(i%2?-1:1);b=a+b;a=b-a;} printf("%lf",sum);return 0;}