回复 楼主 lovecao954
程序代码:
#include
#define N 10
void input (int array_b[N])
{
int i;
printf("请输入%d个整数:",N); //此处最好加上"\n", 在行首输入感觉比在
for(i=0;i { //半行上输入舒服些, 不加也可以.
scanf("%d",&array_b);
}
}
int max(int array_b[N])
{
int i,maxmum,j;
maxmum=array_b[0];
for(i=1;i {
if(array_b>maxmum)
maxmum=array_b;
}
return maxmum;
}
int main()
{
int array_a[N],maxmum,i,j;
input(array_a);
maxmum=max(array_a);
printf("maxmum=%d\n",maxmum);
{
if(maxmum=array_a[N]) //此处连同下面两处一样. N在程序开始被定义成10,
{ //maxnum是整型变量,没法被赋值为数组.
maxmum=array_a[N]; //另外数组的起始下标为0,即使此处对了, j也应该是
j=N; //j=N+1.
}
}
printf("最大值的下标:%4d\n",j); //或者此处改成j+1.
return 0;
}
附上我修改后的代码,输入函数和求最大值的函数基本没有改动,主要是输出下标的部分:
程序代码:
#include <stdio.h>
#define N 10
void input (int array_b[N])
{
int i;
printf("请输入%d个整数:\n",N);
for(i=0;i<N;i++)
{
scanf("%d",&array_b[i]);
}
}
int max(int array_b[N])
{
int i,maxmum,j;
maxmum=array_b[0];
for(i=1;i<N;i++)
{
if(array_b[i]>maxmum)
maxmum=array_b[i];
}
return maxmum;
}
int main()
{
int array_a[N],m,i,j;
input(array_a);
m=max(array_a);
printf("maxmum=%d\n",m);
for(i=0;i<N;i++)
{
if(m==array_a[i]) //依次比较最大值和数组array_a中的各个元素的值,
j=i+1; //如果相等,输出下标.
}
printf("最大值的下标:%d\n",j);
return 0;
}
在改动你的代码之前,我自己试着写了下实现你的要求的代码.
程序代码:
//输入10个整数,输出最大值及其在输入中的序数.
#include "stdio.h"
int main()
{
int array[10];
int i,j,max;
printf("请输入10个整数:\n");
for(i=0;i<10;i++)
{
scanf("%d",&array[i]);
}
max=array[0];
for(i=1;i<10;i++)
{
if(array[i]>max){max=array[i];
j=i;
}
}
printf("最大数为: %d\n",max);
printf("最大数的下标为: %d\n",j+1);
return 0;
}
我不怎么喜欢自己书写新的函数, 也不喜欢用宏定义. 可能是因为编不了稍微大的程序吧. 几乎都是很简单的小程序.练手玩的. 我也是新手,共同交流, 谢谢.