一个菜鸟的问题:C语言 找出数组里的最大值
要做的是找出随意输入的10个整型数字里的最大值。我写了如下的代码,但debug总是会出错,请大侠们帮帮小菜~#include"stdio.h"#include"stdli...
要做的是找出随意输入的10个整型数字里的最大值。我写了如下的代码,但debug总是会出错,请大侠们帮帮小菜~
#include "stdio.h"
#include "stdlib.h"
int m(int *x)
{
int a[10]={0};
int i,k,max;
max=a[0];
for(i=0;i<10;i++)
{
if(max<=a[i])
{
max=a[i];
k=i;
}
}
return k;
}
void main()
{
int b[10]={0},*x,max;
x=b;
printf("请输入10个数字: \n");
for (int i=0;i<10;i++)scanf("%d",&b[10]);
max=m(x);
printf("其中最大的数字是: %d \n",max);
} 展开
#include "stdio.h"
#include "stdlib.h"
int m(int *x)
{
int a[10]={0};
int i,k,max;
max=a[0];
for(i=0;i<10;i++)
{
if(max<=a[i])
{
max=a[i];
k=i;
}
}
return k;
}
void main()
{
int b[10]={0},*x,max;
x=b;
printf("请输入10个数字: \n");
for (int i=0;i<10;i++)scanf("%d",&b[10]);
max=m(x);
printf("其中最大的数字是: %d \n",max);
} 展开
6个回答
展开全部
具体实现方法可以参考如下程序:
#include<stdio.h>
void main()
{
double a[] = {3, 4.2, 4, 5.3, 1, 0.4, 5};
double *max=(double *)malloc(sizeof(double)); // 最大值指针
double *min=(double *)malloc(sizeof(double)); // 最小值指针
int i;
*max = a[0]; // 初始化最大值
*min = a[0]; // 初始化最小值
for(i=1; i<7; i++) // 7表示数组a的长度
{
if(*max<a[i])
*max = a[i]; // 保存最大值
if(*min>a[i])
*min = a[i]; // 保存最小值
}
}
#include<stdio.h>
void main()
{
double a[] = {3, 4.2, 4, 5.3, 1, 0.4, 5};
double *max=(double *)malloc(sizeof(double)); // 最大值指针
double *min=(double *)malloc(sizeof(double)); // 最小值指针
int i;
*max = a[0]; // 初始化最大值
*min = a[0]; // 初始化最小值
for(i=1; i<7; i++) // 7表示数组a的长度
{
if(*max<a[i])
*max = a[i]; // 保存最大值
if(*min>a[i])
*min = a[i]; // 保存最小值
}
}
展开全部
scanf("%d",&b[10]); 错了
for (int i=0;i<10;i++)scanf("%d",&b[i]);
还有你在m函数中返回的是k,所以调用函数后得到的是最大数的下标,而不是数本身
要想得到数本身,在m函数中返回max
denning正解
for (int i=0;i<10;i++)scanf("%d",&b[i]);
还有你在m函数中返回的是k,所以调用函数后得到的是最大数的下标,而不是数本身
要想得到数本身,在m函数中返回max
denning正解
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
程序修改如下:
#include "stdio.h"
#include "stdlib.h"
int m(int *x)
{
int max,i;
max=x[0];
for(i=1;i<10;i++)
{
if(max<=x[i])
{
max=a[i];
}
}
return max;
}
void main()
{
int b[10]={0},*x,max;
printf("请输入10个数字: \n");
for (int i=0;i<10;i++)
scanf("%d",&b[i]);
x=&b[0];
max=m(x);
printf("其中最大的数字是: %d \n",max);
}
#include "stdio.h"
#include "stdlib.h"
int m(int *x)
{
int max,i;
max=x[0];
for(i=1;i<10;i++)
{
if(max<=x[i])
{
max=a[i];
}
}
return max;
}
void main()
{
int b[10]={0},*x,max;
printf("请输入10个数字: \n");
for (int i=0;i<10;i++)
scanf("%d",&b[i]);
x=&b[0];
max=m(x);
printf("其中最大的数字是: %d \n",max);
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include "stdio.h"
#include "stdlib.h"
int m(int *a)
{
int i,max;
max=a[0];
for(i=1;i<10;i++)
{
if(max<=a[i])
{
max=a[i];
}
}
return max;
}
void main()
{
int b[10]={0},i,max;
printf("请输入10个数字: \n");
for (i=0;i<10;i++)
scanf("%d",&b[i]);
max=m(b);
printf("其中最大的数字是: %d \n",max);
}
#include "stdlib.h"
int m(int *a)
{
int i,max;
max=a[0];
for(i=1;i<10;i++)
{
if(max<=a[i])
{
max=a[i];
}
}
return max;
}
void main()
{
int b[10]={0},i,max;
printf("请输入10个数字: \n");
for (i=0;i<10;i++)
scanf("%d",&b[i]);
max=m(b);
printf("其中最大的数字是: %d \n",max);
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
for (int i=0;i<10;i++)scanf("%d",&b[i]);
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询