我的程序错在哪里

来源:百度知道 编辑:UC知道 时间:2024/06/22 11:05:16
#include <stdio.h>
int main()
{
int n;
scanf("%d",&n);
double a[n];
for(int i=0;i<n;i++)
{
scanf("%d",a[i]);
}

double max1,max2;//max1最大值,max2次大值
max1=-100;
max2=-100;
for(int i=0;i<n;i++)
{
if(max1<a[i])
{
max2=max1;
max1=a[i];
}
else if(max2<a[i] && a[i] != max1)
{
max2=a[i];
}
}
printf("%d,%d",max1,max2);
system("PAUSE");
return 1;
}

帮我找出我的程序到底错在哪里?应该如何改正?

#include <stdio.h>
#include <stdlib.h>
#include <malloc.h>

int main()
{
int n;
int i;
double *a;
double max1,max2;//max1最大值,max2次大值

scanf("%d",&n);

a = (double *)malloc( sizeof(double) * n);

for(i=0;i<n;i++)
{
scanf("%lf",&a[i]);
}

max1=a[0];
max2=a[0];

for(i=0;i<n;i++)
{
if(max1<a[i])
{
max2=max1;
max1=a[i];
}
else if(max2<a[i] && a[i] < max1)
{
max2=a[i];
}
}
printf("%lf,%lf",max1,max2);
system("PAUSE");
return 1;
}