(1) 计算并输出最大值;
(2) 统计并输出最大值出现的次数;
(3) 输出最后一次最大出现的位置。求大侠,菜B不知道为什么计数总tm的错,麻烦说一下为什么?
这是我写的代码
#include <stdio.h>
#define n 10
int main()
{
int a[n],i,j,ct,cti,max,t;
for(i=0;i<n;i++)
scanf("%d",&a[i]);
max=ct=cti=0;
for(i=0;i<n;i++)
{if(a[max]<a[i]) a[max]=a[i];}
for(i=0;i<n;i++)
if(a[i]=a[max])
{cti=i;
ct++;}/*我擦,这里到底哪里错了,NND受不了了*/
printf("Max=%d\n",a[max]);
printf("Count=%d\n",ct);
printf("a[%d]=%d\n",cti,a[cti]);
return 0;
}
你的代码灵光的,菜B想知道我那种方法哪里错了,不能直接用a[max]数组记录数据吗?
追答你定义的max是整形变量并没有赋初值,所以a[max]是没有任何意义的,即使你把max赋值那也只是取出数组a中第max个元素进行相应操作操作(像你这步a[i]=a[max])或者是把数组中的某个值赋给a[max](就像你的a[max]=a[i];}),完全破坏了原数组,更达不到你程序的初衷。
本回答被提问者采纳