1.编程实现:对任意一个一维数组,从中找出数组元素的最大值和最小值。
要求:
(1)数组为整型数组(10个元素)。
(2)使用scanf函数实现数组元素的输入。在输入前给出必要的提示。
(3)输出时给出必要的说明,首先输出原始的10个元素,换行后输出最大值以及最大值在数组中的位置、最小值以及最小值在数组中的位置。
(4)如果现改为20个元素的数组,怎样修改程序?修改程序后,运行程序进行检查。如果需要数组元素不断改变,应怎样修改程序?
一直不清楚该怎么用循环对数组进行输入,,有谁能指教指教。。。
C语言数组输入是相同类型的、数量有限的若干个变量通过有序的方法组织起来的一种便于使用的形式。数组属于一种构造类型,其中的变量被称为数组的元素。数组元素的类型可以是基本数据类型,也可以是特殊类型和构造类型。
在引用数组中的元素时,采用数组名[下标]的方式,将其中的每一个元素视为一个普通的变量来进行操作。需要注意的是,因为定义的数组arr仅含有9个元素,所以在使用的过程中,下标值不能超过8,否则就会出现下标越界的错误。
扩展资料:
注意事项:
由于剩余的元素会自动初始化为 0,所以只需要给第 0 个元素赋值为 0 即可,只能给元素逐个赋值,不能给数组整体赋值。例如给 10 个元素全部赋值为 1。
注意指针变量的当前值:指针变量的值在程序运行过程中可能经常改变,要对此注意。
数组越界:C语言系统是不检查数组越界的,需要程序员自行检查。
参考资料来源:百度百科-c语言
参考资料来源:百度百科-数组
void main()
{
int i,j,k,min,n,m,max;
int a[9];
printf("请输入十个数:\n");
for(i=0;i<10;i++)
scanf("%d",&a[i]);
printf("你输入的十个数为:\n");
for(i=0;i<10;i++)
printf("%d ",a[i]);
min=a[0];
max=a[0];
for(i=1;i<10;i++)
{
if(max<a[i])
{
max=a[i];
n=i;
}
}
for(i=1;i<10;i++)
{
if(min>a[i])
{
min=a[i];
m=i;
}
}
printf("\n最大数为%d ,下标为%d\n",max,n);
printf("\n最小数为%d ,下标为%d\n",min,m);
}
20个元素也是一样的道理的。本回答被提问者采纳
int main()
{
int n,*arr,i,max,min;
// while(true){
printf("Input the size of the arry: ");
//设定数组大小
if (scanf("%d",&n)==EOF)
return 0;
//创建数组
arr = new int[n];
printf("Input the arry elements:\n");
for (max=min=i=0;i<n;i++)
{
//循环输入数组元素,并找出最大最小值
printf("[%d]: (for example: 5<Enter>)",i);
scanf("%d",&arr[i]);
if (arr[i]>arr[max])
max=i;
if (arr[i]<arr[min])
min=i;
}
//输出数组
for (i=0;i<n;i++)
printf("%4d",i);
printf("\n");
for (i=0;i<n;i++)
printf("%4d",arr[i]);
printf("\n");
//输出最大最小值及其位置
printf("The max number of the arry is %d at the position %d.\n",arr[max],max);
printf("The min number of the arry is %d at the position %d.\n",arr[min],min);
delete[] arr;
// }
return 0;
}
/*
*以上程序即可实现动态创建不同大小的一维数组并找出最大
*最小值及其位置的功能,如果想要不退出程序不断的改变数
*组大小,则只需把while(true){}这个循环体的注释去掉,实现
*循环设定数组大小并输入数组元素即可,退出的条件为EOF,
*即按键<Ctrl+Z>。
*/
遇到空格或回车
函数就结束了。
用gets(str);就可以全部接收了,但好像接收不了
<
或
>
。
本次课程我们主要结合给出的例子进行数组的输入和输出源码的详解,教你轻松学数组,适合于零基础学开发的你,如果你想学习更多的软件开发,欢迎加入程序员小白学开发一起学习!