#include<stdio.h>
#include<stdlib.h>
int main()
{
int n,i,j,max[30]={0},min,count[30]={0};
int a[35]={0};
while(scanf("%d",&n)!=EOF)
{
for(i=1;i<n+1;i++)/*比出最大值*/
{
scanf("%d ",&a[i]);
}
for(i=1;i<n+1;i++)
{
max[i]=a[i];
for(j=1;j<n+1;j++)
{
if(a[j]>max[i])
count[i]=j;/记下最大值的位置/
if(a[j]==max[i])
count[i]=i;
}
}
min=count[1];
for(i=1;i<=n;i++)/*比出哪个最大值位置最小*/
{
if(count[i]<=min)
{
min=count[i];
}
}
printf("%d",min);
printf("\n");
n=0;
}
return 0;
}
输出的结果不对,哪里错了?
#include<stdio.h>
int max_number(int a[], int n)
{
int i, j=0;
for (i = 1; i < n; i++)
{
if (a[i] > a[j])
j = i;
}
return (j + 1);
}
main()
{
int a[100], n,max,i;
scanf_s("%d", &n);
for (i = 0; i < n; i++)
scanf_s("%d", &a[i]);
max = max_number(a, n);
printf("%d", max);
}
就这么个功能,你能写出这么多行数?
首次出现很容易啊,你只要比较的时候要求后面的值必须大于当前max才修改max不就行了吗?为啥要把最大值相同的都搞出来还比较呢??