编写一个程序实现如下功能: 1)从键盘上输入n个整数(n的值由用户指定

编写一个程序实现如下功能:
1)从键盘上输入n个整数(n的值由用户指定,n<1000)存入一数组中,将它们按照从小到大的顺序排列起来,输出排列后的数组值;
2)检查整数x(由用户指定)值是否在这些数字当中,若在,返回其在数组中的位置(即下标值,可能不止一个),若不在则将x插入到相应位置,插入后数组仍有序;
3)统计数组中大于a小于b的元素个数并输出,a、b值由用户指定

int jiancha(int *array,int num)
{
int count = 0;
for (int i = 0; i<=n+1;i++)
{
if (array[i]== num)
{
printf("\n第%d个数是%d\n",i-1,num);
count++;
}
else
continue;
}

if (count==0)
{
return -1;
}
else
{
return 0;
}
}
int count(int* array,int min,int max)
{
int count = 0;
for (int i = 0;i<1000;i++)
{
if (array[i]<max&&array[i]>min)
{
count++;
}
}
return count;
}追答

printf("\n请输入要检查的数字\n");
int x = 0;
scanf("%d",&x);
if(jiancha(numArray,x)==-1)
{

numArray[0]=x;//添加检查时没有的数字
n+=1;
rank(numArray);

printf("排序结果\n");
for (int i = 2; i<n+2;i++)
{
printf("%d,",numArray[i]);
}
}

printf("\n请输入计数范围最小值,最大值(计数不包含最大值和最小值)\n");
int min,max;
scanf("%d,%d",&min,&max);
printf("\n%d\n",count(numArray,min,max));

return 0;
}

void rank(int array[1000])
{
int max = array[0];
int temp;
for (int i = 0 ; i<n;i++)
{
for (int j = 0 ; j <= n; j ++)
{
if (array[j] < array[j+1])
{
continue ;
}
else
{
temp = array[j];
array[j] = array[j+1];
array[j+1] = temp ;
}
}
}
}

#include

void rank(int array[1000]);
int jiancha(int *array,int num);//检查那个数组的那个数
int count(int* array,int min,int max);

int n ;
int numArray[1000];

int main()
{
printf("请输入n\n");
scanf("%d",&n);
printf("\n请输入%d个数字\n",n);
for (int i=0; i< n; i++)
{
scanf("%d",&numArray[i]);
}

rank(numArray);

printf("你输入的数字排序后的结果\n");

for (int i = 2; i<n+2;i++)
{
printf("%d,",numArray[i]);
}

因为有字数限制所以分开贴的,贴反了,反向复制下来就能编译运行了

温馨提示:内容为网友见解,仅供参考
无其他回答
相似回答