鱼C论坛

 找回密码
 立即注册
查看: 1321|回复: 10

[已解决]关于数组的最大最小值

[复制链接]
发表于 2020-5-4 18:06:22 | 显示全部楼层 |阅读模式
5鱼币
  输入1个正整数n(1<n<=10),再输入n个整数,将最小值与第1个数交换,最大值与最后1个数交换,然后输出交换后的n个数
  一个关于数组的实验题,找不到问题出在哪里啊
  下面是代码,大佬们帮帮忙啊QAQ

  1. #include<stdio.h>
  2. int main()
  3. {
  4.         int bool1=0,bool2=0;
  5.         int n,i,j,a[10];
  6.         printf("输入整数个数:");
  7.         scanf("%d",&n);
  8.         printf("请输入%d个整数:",n);
  9.         for(i=0;i<n;i++){
  10.                 scanf("%d",&a[i]);
  11.         }
  12.         for(i=0;i<n;i++){//min
  13.                 for(j=i;j<n;j++){//比较
  14.                         if(a[i]<=a[j]){
  15.                                 bool1++;
  16.                         }
  17.                 }
  18.                 if(bool1=n){//交换
  19.                         a[i]+=a[0];
  20.                         a[0]=a[i]-a[0];
  21.                         a[i]-=a[0];
  22.                         break;
  23.                 }
  24.                 bool1=0;
  25.         }
  26.         for(i=0;i<n;i++){//max
  27.                 for(j=i;j<n;j++){//比较
  28.                         if(a[i]>=a[j]){
  29.                                 bool2++;
  30.                         }
  31.                 }
  32.                 if(bool2=n){//交换
  33.                         a[i]+=a[n-1];
  34.                         a[n-1]=a[i]-a[n-1];
  35.                         a[i]-=a[n-1];
  36.                         break;
  37.                 }
  38.                 bool2=0;
  39.         }
  40.         for(i=0;i<n;i++){
  41.                 printf("%d ",a[i]);
  42.                
  43.         }
  44.         return 0;
  45. }
复制代码
最佳答案
2020-5-4 18:06:23
张小艾 发表于 2020-5-4 18:26
bool1是用来寄存一个数字小于等于数组中数字的个数,当输入的a【i】小于等于所有数字的话,bool1就是n ...

求最大最小值就用这个方法:

  1. #include<stdio.h>
  2. #include<stdlib.h>

  3. int main(void) {
  4.        
  5.         int a[5] = { 7,3,20,8,9 };
  6.         int max = a[0];
  7.         for (int i = 0; i < 5; i++) {
  8.                 if (a[i] > max) {
  9.                         max = a[i];
  10.                 }
  11.         }

  12.         printf("max is %d\n", max);
  13.         return 0;
  14. }
复制代码

最佳答案

查看完整内容

求最大最小值就用这个方法:
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-5-4 18:06:23 | 显示全部楼层    本楼为最佳答案   
张小艾 发表于 2020-5-4 18:26
bool1是用来寄存一个数字小于等于数组中数字的个数,当输入的a【i】小于等于所有数字的话,bool1就是n ...

求最大最小值就用这个方法:

  1. #include<stdio.h>
  2. #include<stdlib.h>

  3. int main(void) {
  4.        
  5.         int a[5] = { 7,3,20,8,9 };
  6.         int max = a[0];
  7.         for (int i = 0; i < 5; i++) {
  8.                 if (a[i] > max) {
  9.                         max = a[i];
  10.                 }
  11.         }

  12.         printf("max is %d\n", max);
  13.         return 0;
  14. }
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-5-4 18:15:13 | 显示全部楼层
请问一下 bool1 和 bool2 这两个变量是存放什么的呀……
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2020-5-4 18:26:50 | 显示全部楼层
liuzhengyuan 发表于 2020-5-4 18:15
请问一下 bool1 和 bool2 这两个变量是存放什么的呀……

  bool1是用来寄存一个数字小于等于数组中数字的个数,当输入的a【i】小于等于所有数字的话,bool1就是n了,这个数字就是数组里最小的数字了,没想到更好的办法找到最值_(:з」∠)_
bool2同理,找最大值
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2020-5-4 19:21:43 | 显示全部楼层
liuzhengyuan 发表于 2020-5-4 18:35
求最大最小值就用这个方法:

emmmmm这样写的话,max和min的初始化感觉有点问题,不过能做完题就得了多谢
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-5-4 19:22:56 | 显示全部楼层
张小艾 发表于 2020-5-4 19:21
emmmmm这样写的话,max和min的初始化感觉有点问题,不过能做完题就得了多谢

有什么问题呢?
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2020-5-4 19:59:40 | 显示全部楼层

就是最小值默认初始化为0的话,输入的都是正数,那输出的min=0了啊_(:з」∠)_
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2020-5-4 20:02:15 | 显示全部楼层

而且好像有个交换的问题,min放在a[0];那a[0]放在那里啊
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-5-4 20:02:33 From FishC Mobile | 显示全部楼层
张小艾 发表于 2020-5-4 19:59
就是最小值默认初始化为0的话,输入的都是正数,那输出的min=0了啊_(:з」∠)_

初始化不要为 0 ,初始为数组中第一个数
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-5-4 20:03:32 From FishC Mobile | 显示全部楼层
张小艾 发表于 2020-5-4 20:02
而且好像有个交换的问题,min放在a[0];那a[0]放在那里啊

你可以用
Min 来存放数组下标
这样方便多了
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2020-5-4 20:07:16 | 显示全部楼层
liuzhengyuan 发表于 2020-5-4 20:03
你可以用
Min 来存放数组下标
这样方便多了

顿悟啊!我怎么没想到,可能我真是一只菜鸡
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-8-1 14:35

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表