C语言创建数组,求最大值最小值及其下标

本文介绍了一个简单的C语言程序,该程序通过键盘接收10个整数,并将其存储在一维数组中。程序进一步确定了这些数值中的最大值和最小值,并输出它们各自的值及在数组中的位置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

题目:编写程序,从键盘输入 10 个整数,之间以一个空格隔开,存放在一维数组中。找出值大和最小的元素,第一行输出最大值及其所在的元素下标,之间以一个空格隔开;第二行输出最小值及其所在的元素下标,之间以一个空格隔开。

int main()
{
  int i = 0;
  int arr[10];
  int max = 0, min = 0, x=0, y=0;
  max = arr[0], min = 0;

  for(i = 0; i < 10; ++i)
  {
    scanf("%d", &arr[i]);
  } //创建数组

  for (i = 0; i < 10; ++i)
  {
    if(arr[i] > max)
    {
      max = arr[i];
      x = i;
    }
  }
  
  min = max;
  for (i = 0; i < 10; i++)
  {
    if (arr[i] < min)
    {
      min = arr[i];
      y = i;
    }
  }
  printf("%d %d\n", max, x);
  printf("%d %d\n", min, y);

  getchar();//这个是为了让控制台停留一下
  return 0;
}

### C语言实现数组最大值 以下是通过C语言编写的程序来查找数组中的最大值。此方法基于遍历整个数组并比较每个元素的大小。 #### 方法一:基本循环法 这是最简单直观的方式,利用`for`循环逐一比较数组中的每一个元素,并记录当前遇到的最大值。 ```c #include <stdio.h> int main() { int arr[] = {12, 3, 23, 34, 654, 23, 21, 4}; // 定义一个整型数组 int sz = sizeof(arr) / sizeof(arr[0]); // 计算数组长度 int max = arr[0]; // 假设第一个元素为最大值 for (int i = 0; i < sz; i++) { // 遍历数组 if (arr[i] > max) // 如果发现更大的数,则更新max变量 max = arr[i]; } printf("最大值=%d\n", max); // 输出最终得到的最大值 return 0; } ``` 这种方法的时间复杂度为O(n),其中n表示数组的长度[^1]。 --- #### 方法二:使用指针访问数组元素 另一种方式是采用指针操作代替索引来完成相同的功能。这种方式可以更高效地处理内存地址上的数据读取与写入过程。 ```c #include <stdio.h> // 函数用于计算给定数组最大值 void findMax(int *array, int size, int *result) { *result = array[0]; // 初始化*result为数组首项 while (--size >= 0 && (*result < *(++array))) *result = *array; // 更新最大值直到结束条件满足为止 } int main(){ int data[] = {78,-9,65,34,12}; int length = sizeof(data)/sizeof(*data); int maxValue; findMax(&data,maxValue,&length); printf("The maximum value is %d.\n", maxValue); return 0; } ``` 注意上述代码存在错误示范部分,在实际应用时需修正逻辑关系以及参数传递顺序等问题才能正常运行[^2]。 --- 以上展示了两种不同的技术路径去解决同一个问题——即如何用C语言编写一段能够有效定位任意有限集合内的最高数值成员的小型应用程序。无论是选用传统下标迭代还是现代风格指针运算符表达形式都可以达成目标;具体选择取决于个人偏好或者项目需等因素影响下的权衡考量结果。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值