#include
#define N 100
int data[N];
int min,submin;
int minIndex,subminIndex;
void find(int);
int main()
{
int i,n;
printf("请输入数据个数n:");
scanf("%d",&n);
printf("请依次输入n个数据:");
for(i=0;i
scanf("%d",data[i]);
find(n);
printf("\n数组最小值是第%d个数据,数值是%d\n",minIndex+1,min);
printf("\n数组的次最小值是第%d个数据,数值是%d\n",subminIndex+1,submin);
return 0;
}
void find(int len)
{
int i;
min=data[0];
for(i=1;i
{
if(min>data[i])
{
min=data[i];
minIndex=i;
}
}
submin=data[0];
for(i=1;i
{
if((submin>data[i])&&(i!=minIndex))
{
submin=data[i];
subminIndex=i;
}
}
}
每次运行完之后都没有结果,怎么回事?😅
scanf输入写错了,函数写的也不对,修改如下:
#include<stdio.h>
#define N 100
int data[N];
int min1,submin;
int minIndex,subminIndex;
void find(int);
int main()
{
int i,n;
printf("请输入数据个数n:");
scanf("%d",&n);
printf("请依次输入n个数据:");
for(i=0;i<n;i++)
scanf("%d",&data[i]);
find(n);
printf("\n数组最小值是第%d个数据,数值是%d\n",minIndex+1,min1);
printf("\n数组的次最小值是第%d个数据,数值是%d\n",subminIndex+1,submin);
return 0;
}
void find(int len)
{
minIndex=0;
min1=data[0];
subminIndex=-1;
for(int i=1;i<len;i++)
{
if(data[i] < min1)
{
submin = min1;
subminIndex = minIndex;
min1 = data[i];
minIndex= i;
}
else if(subminIndex < 0 || data[i] < submin)
{
submin = data[i];
subminIndex = i;
}
}
}
scanf("%d", &data[i]); 输入要取地址 &