int max=0;
for(i=1;i<n;i++)
if(a[max]<a[i])max=i;
printf("a[%d]=%d\n",max,a[max]);matlab提供了一些基本的函数,以方便一些基本 *** 作,这些你可以通过找一些函数,或者参考一下一些基本教材!你问的那个问题,用函数max(A),就可以实现,其中A是一个数组,当然也可以是一个矩阵,它返回的是每一列的最大值,最终是以一个行向量的形式输出;如果你说的数组不是1维的话,也可以通过下面的形式转换一下max(A(:));你可以尝试一下!由于matlab中,函数很多,在这就不方便给你放下面了!希望能对你有帮助!int findmax(int a[],int length)
{
int i,maxvalue=0;
for (i=0;i<length;i++)
{
if (i==0)
{
maxvalue = a[i];
}
else
{
if (maxvalue < a[i])
{
maxvalue = a[i];
}
}
}
return maxvalue;
}
int findmin(int a[],int length)
{
int i,minvalue=0;
for (i=0;i<length;i++)
{
if (i==0)
{
minvalue = a[i];
}
else
{
if (minvalue > a[i])
{
minvalue = a[i];
}
}
}
return minvalue;
}
int main()
{
int i,j;
int mark[10];
for(j=0;j<10;j++)
{
scanf("%d\n",&mark[j]);
}
printf("最大值:%d\n",findmax(mark,10));
printf("最小值:%d\n",findmin(mark,10));
}for(i=0;i<N;i++)
{for(j=0;j<N;j++)
cin>>a[i][j];
if(b[i]<a[i][j]) b[i]=a[i][j];
cout<<a[i][j]<<endl;
}
有问题,改成这样
for(i=0;i<N;i++)
{
b[i]=-10000000000000;//总之这个数要足够小
for(j=0;j<N;j++)
cin>>a[i][j];
for(j=0;j<N;j++) //必须要这句,否则就只是比较一个了
{
if(b[i]<a[i][j])
b[i]=a[i][j];
}
cout<<a[i][j]<<endl;
}#include <stdioh>
int max(int arr[], int len)
{
if(1 == len) // 只有一个元素
{
return arr[0];
}
int a = arr[0]; //第一个元素
int b = max(arr + 1, len - 1); //第二个元素起的最大值
return a > b a : b;
}
int main(void)
{
int a[] = {1,2,3,4,5,6,7,8,9,10};
printf("最大值:%d\n", max(a, sizeof(a) / sizeof(a[0])));
return 0;
}
要求数组a中索引从0到n-1的最大值,先递归求索引从0到n-2的最大值,设该值为m,然后返回m和a[n-1]中大的那个值。
Java代码:
public class HelloWorld {public static void main(String []args){
Systemoutprintln(max(new int[] {5, 3, 1, 2, 6, 4}));
}
public static int max(int[] a) {
return max(a, alength - 1);
}
private static int max(int[] a, int i) {
if (i == 0) {
return a[0];
}
int m = max(a, i - 1);
return a[i] > m a[i] : m;
}
}
#include<stdioh>
void main()
{
int i,n;
double a[100],max;//避免数据过大溢出导致输入无效,所以用double;
max=a[0];//假设最大值为a[0]
printf("请输入录入数据个数:\n");
scanf("%d",&n);
printf("\n");
printf("请输入数据数值,并回车:\n");//数据录入
for(i=0;i<n;i++)
scanf("%lf",&a[i]);
for(i=0;i<n;i++)//数据比较大小
if(a[i]>max)max=a[i];
printf("最大值=%2lf",max);//输出数据带2位小数
}
首先把数组的第一个数赋值给变量max和min,分别表示最大值和最小值,再依次判断数组的其他,判断当前的最大值和最小值是否就是最大值和最小值,如果不是进行替换,最后输出最大值和最小值。
#include<stdioh>#define N 6
int main()
{
int a[N],max,min,i;
for(i=0;i<N;i++)//输入数组
scanf("%d",&a[i]);
max=min=a[0];//把数组第一个数赋值给max和min
for(i=1;i<N;i++){//依次判断剩下每个数
if(a[i]>max) max=a[i];//如果该数大于max,把其赋值给max
if(a[i]<min) min=a[i];//如果该数小于min,把其赋值给min
}
printf("最大值:%d,最小值:%d\n",max,min);
return 0;
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)