C语言中如何输入n 个数,

输入n 个数,请你找出次最大值和次最小值。
★数据输入
输入一行,第一个数为n(1<n<=100),表示数的个数,接下来有n 个数,均为小于10^6
的非负整数,每个之间用空格隔开,最后以换行结束。题目保证次最大值和次最小值存在。
★数据输出
输出次最大值和次最小值。

#include<stdio.h

int main()

{int num;double sum = 0;int count = 0;while(scanf("%d", &num) && num != -1)//输入-1停止}

{sum += num;count++;}

printf("%f", sum / count);

return 0。

扩展资料:

指针:

如果一个变量声明时在前面使用 * 号,表明这是个指针型变量。换句话说,该变量存储一个地址,而 *(此处特指单目运算符 * ,下同。C语言中另有 双目运算符 *) 则是取内容操作符,意思是取这个内存地址里存储的内容。指针是 C 语言区别于其他同时代高级语言的主要特征之一。

指针不仅可以是变量的地址,还可以是数组、数组元素、函数的地址。通过指针作为形式参数可以在函数的调用过程得到一个以上的返回值,不同于return(z)这样的仅能得到一个返回值。

指针是一把双刃剑,许多操作可以通过指针自然的表达,但是不正确的或者过分的使用指针又会给程序带来大量潜在的错误。

参考资料来源:百度百科-c语言



温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-10-15

C语言中如何输入n 个数,可以使用如下方法:

//定义一个数组,使用scanf函数输入数字
int a[10]
for(i=0;i<10;i++)
{
    scanf("%d",&a[i]);
}

第2个回答  2012-11-08
#include<stdio.h>
int main()
{
int a[100];
int max,nmax,n,i,j;
printf("输入需要输入数的个数:");
scanf("%d",&n);
printf("\n");
printf("输入数:");
for(i=0;i<n;i++)
scanf("%d",&a[i]);
printf("\n");
max=a[0];nmax=a[1];
for(j=0;j<n;j++)
{
if(a[j]>max)
max=a[j];
if(a[j]>=nmax&&a[j]<max)
nmax=a[j];
}
printf("最大数:%d\t次大数:%d\n",max,nmax);
return 0;
}
第3个回答  推荐于2017-09-28
#include<stdio.h>
void main()
{
int i,j,n;
long int array[100],t;
scanf("%d",&n);
for(i=0;i<n;i++) scanf("%ld",&array[i]);
for(i=0;i<n-1;i++)//冒泡法排序
{
for(j=0;j<n-1-i;j++)
{
if(array[j]<array[j+1])
{
t=array[j];
array[j]=array[j+1];
array[j+1] = t;
}
}
}
printf("次最大值为:\n",array[n-2]);
printf("次最小值为:\n",array[1]);
}追问

编译不通过。。。。修改了之后也是这样。。。。不过你做的是对的,只是我们要求有点那个,还是谢谢了

本回答被提问者采纳
第4个回答  2012-11-08
#include<stdio.h>
void main()
{
int a[100],i,t,n;
printf("请输入n");
scanf("%d",&n);
for(i=0;i<n;i++)
scanf("%d",&a[i]);
for(i=0;i<n;i++)
{if(a[i]>a[i+1])
{t=a[i];
a[i]=a[i+1];
a[i+1]=t;}
}
printf("max=%d",a[n]);
printf("\n min=%d",a[0]);
}追问

对不起,我要求的是次最大次最小。。。。就是第二大第二小的

追答

那就是

a[1]和
a[n-1]

本回答被网友采纳
相似回答