求C语言大神帮忙改程序 另外 对于循环语句的括号加在什么地方也比较混乱 希望能给解释一下大括号的问题

求一维数组各元素的最大值、最小值及所有元素的乘积

这个是我写的程序。。
#include <stdio.h>
void main()
{
int a[5];
int i,min,max,mul;
printf("please input 5 digits\n");
for(i=1;i<5;i++)
{
scanf("%d",&a[i]);
min=a[0];
max=a[0];
mul=a[0];
mul*=a[i];
if (a[i]<a[0])
{
min=a[i];
max=a[0];
}
else
{
min=a[0];
max=a[i];
}

}
printf("max=%d\nmin=%d\nmul=%d\n",max,min,mul);
}
因为马上要C语言课程的考试 所以也就是临时捣鼓 目标不挂科 希望您能给改一下然后稍微详细点标注一下原因,要不我估计看不懂。谢谢了

#include <stdio.h>
void main()
{
int a[5];
int i,min,max,mul=1;//先对mul赋值,为1
printf("please input 5 digits\n");
for(i=0;i<5;i++) //首先i要从0开始计数 数组的第一位为a[0]
{
scanf("%d",&a[i]);
min=a[0];
max=a[0];
//mul=a[0]; 这里的mul不要赋值
mul*=a[i];
if (a[i]<min)//这里应该和min比较确定最小值
{
max=min;
min=a[i];
}
else
{
max=a[i];
//min=a[0];可以删去
}

}
printf("max=%d\nmin=%d\nmul=%d\n",max,min,mul);
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-04-26
#include<stdio.h>
int main(){
int a[5],i,max,min,mul;
for(i=0;i<5;i++){
scanf("%d",&a[i]);
}
max=a[0];//初始化
min=a[0];
mul=a[0];
for(i=1;i<5;i++){//注意i=1
if(a[i]>max){
max=a[i];
}
if(a[i]<min){
min=a[i];
}
mul*=a[i];//这个有可能溢出
}
printf("max=%d\nmin=%d\nmul=%d\n",max,min,mul);
return 0;
}追问

大神能告诉一下为什么要用两个for循环么

追答

不一定要用两个循环
#include
int main(){
int a[5],i,max=0,min=0,mul=1;//注意初始化
for(i=0;imax){
max=a[i];
}
if(a[i]<min){
min=a[i];
}
mul*=a[i];//这个有可能溢出
}
printf("max=%d\nmin=%d\nmul=%d\n",max,min,mul);
return 0;
}

第2个回答  2013-04-26
#include <stdio.h>
void main()
{
int a[5]; //定义一个数组
int i,min,max,mul; //
printf("please input 5 digits\n"); //
for(i=1;i<5;i++) //循环数组
{
scanf("%d",&a[i]); //输入数据
min=a[0]; //初始化最小数为0,下面同理
max=a[0]; //
mul=a[0]; //
mul*=a[i]; //
if (a[i]<a[0]) //如果当前数据小于最小数据,则把最小数据设置为当前数据,下同理
{
min=a[i];
max=a[0];
}
else
{
min=a[0];
max=a[i];
}

}
printf("max=%d\nmin=%d\nmul=%d\n",max,min,mul);//输出
}
第3个回答  2013-04-26
#include <stdio.h>
int main()
{
int a[5],i,min,max,mul;
printf("please input 5 digits\n");
for(i=0;i<5;++i)
scanf("%d",&a[i]);
min=max=mul=a[0];
for(i=1;i<5;++i)
{
if(a[i]<min)
min=a[i];
if(a[i]>max)
max=a[i];
mul*=a[i];
}
printf("max=%d\nmin=%d\nmul=%d\n",max,min,mul);
return 0;
}

相似回答