如何用C语言编写输入不知道个数目的数组?并输出最大值与最小值?要用C语言不能用C++

最好能给出这一部分的函数

#include <stdio.h>
void main()
{
int j,k;
for(j=0;;j++)
{
int a[100];
int i,m;
printf("--------------------\n");
printf("--------------------\n");
printf("请输入一个一维数组,\n当输入0时完成输入:\n");
printf("--------------------\n");
for(i=0;i<100;i++)
{
scanf("%d",&a[i]);
if(a[i]==0)
{
m=i;
break;
}
}
printf("--------------------\n");
printf("你输入的数组是:");
for(i=0;i<m;i++)
{
printf("%2d",a[i]);
}
printf("\n\n");
int max=a[0],min=a[0];
for(i=0;i<m;i++)
{
if(max<=a[i])
{
max=a[i];
}
else if(min>=a[i])
{
min=a[i];
}
}
printf("最大数是 %d\n\n",max);
printf("最小数是 %d\n\n",min);
printf("--------------------\n");
printf("--------------------\n");
printf("是否继续运行本程序?\n若要继续请输入1;\n退出程序请输入0:");
scanf("%d",&k);
if(k==1)
continue;
else
break;
}

}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-06-06
用sizeof就能知道数目了.
第2个回答  2010-06-06
不怕麻烦就定义个结构喽.
输入一个,分配一个.
说到底还是用sizeof()...
第3个回答  2010-06-19
#include<stdio.h>
void main()
{ int *a,n;
int i,max,min;
for(n=0;;n++)
{scanf("%d",&a[n]);
if(a[n]==0) break;}
max=a[0];
min=a[0];
for(i=1;i<n;i++)
if(max<a[i]) max=a[i];
for(i=1;i<n;i++)
if(min>a[i]) min=a[i];
printf("max=%d,min=%d",max,min);
}
if(a[n]==0) break;该语句中的0可用其它任意数字代替,但一定是数组a中没有的一个数
第4个回答  2010-06-18
#include<iostream.h>

int main(int argc, char* argv[])
{
int a;
int max = 0, min = 0;
cin>>a;
max = min = a;
while (cin >> a)
{
max = a > max ? a : max;
min = a < min ? a : min;
}
cout<<min<<endl;
cout<<max<<endl;

return 0;
}
第5个回答  2010-06-06
用指针,编程自己写,很简单的

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网