如果输入3 5 5 5怎么样
追答那你就输出的时候再判断一下了
输出的时候:
int first = num[0];原来是这样
回去试下谢了
好像不太对
是要求第二大的数
不是最大
这个办法我试过
输入3 5 5 5不行
不是
输入3 3 5 5
不行
会输出3
就3 5 5 5第二大是3结果输出了5
大神这个我没看太懂
追答max=0;
for(i=1;i<4;i++)
{
if(a[max]<a[i])
{
max=i;
}
}
上面这一段是找出4个数里的最大的那个数在哪个位置。
i=a[max];
a[max]=a[0];
a[0]=i;
上面这一段是把最大的那个数和第一个数交换一下。
max=1;
for(i=2;i<4;i++)
{
if(a[max]<a[i])
{
max=i;
}
}
上面这一段是把第一个数排除出去,在剩下的3个数里找出最大的那个数的位置,这个位置就是第二大的数的位置了。
如果出现3 5 5 5
也可以出现吗
追答输入3 5 5 5 结果会是5
追问但第二大是3
😂
怎么办
追答改成这样:
#include
int main()
{
int i,j=0,a[4],b[4],max;
for(i=0;i0)
{
max=0;
for(i=1;i<j;i++)
{
if(b[max]<b[i])
{
max=i;
}
}
printf("第二大的是:%d\n",b[max]);
}
else
{
printf("没有第二大的数\n");
}
return 0;
}
可以呀
这个怎么加上while(scanf("%d",&a[i]){}
这个怎么加上while(scanf("%d",&a[i])!=EOF){}
需要连续输入不停止
很苦难
苦恼
追答不明白你的意思
追问就是每次输了4个数然后出了结果,会出现“任意键以退出”,但我想继续输不退出
追答改成这样:
#include
int main()
{
int i,j=0,a[4],b[4],max;
while(1){
j=0;
for(i=0;i0)
{
max=0;
for(i=1;i<j;i++)
{
if(b[max]<b[i])
{
max=i;
}
}
printf("第二大的是:%d\n",b[max]);
}
else
{
printf("没有第二大的数\n");
}
}
return 0;
}