关于数组的最大最小值
输入1个正整数n(1<n<=10),再输入n个整数,将最小值与第1个数交换,最大值与最后1个数交换,然后输出交换后的n个数一个关于数组的实验题,找不到问题出在哪里啊
下面是代码,大佬们帮帮忙啊QAQ
#include<stdio.h>
int main()
{
int bool1=0,bool2=0;
int n,i,j,a;
printf("输入整数个数:");
scanf("%d",&n);
printf("请输入%d个整数:",n);
for(i=0;i<n;i++){
scanf("%d",&a);
}
for(i=0;i<n;i++){//min
for(j=i;j<n;j++){//比较
if(a<=a){
bool1++;
}
}
if(bool1=n){//交换
a+=a;
a=a-a;
a-=a;
break;
}
bool1=0;
}
for(i=0;i<n;i++){//max
for(j=i;j<n;j++){//比较
if(a>=a){
bool2++;
}
}
if(bool2=n){//交换
a+=a;
a=a-a;
a-=a;
break;
}
bool2=0;
}
for(i=0;i<n;i++){
printf("%d ",a);
}
return 0;
} 张小艾 发表于 2020-5-4 18:26
bool1是用来寄存一个数字小于等于数组中数字的个数,当输入的a【i】小于等于所有数字的话,bool1就是n ...
求最大最小值就用这个方法:
#include<stdio.h>
#include<stdlib.h>
int main(void) {
int a = { 7,3,20,8,9 };
int max = a;
for (int i = 0; i < 5; i++) {
if (a > max) {
max = a;
}
}
printf("max is %d\n", max);
return 0;
} 请问一下 bool1 和 bool2 这两个变量是存放什么的呀…… liuzhengyuan 发表于 2020-5-4 18:15
请问一下 bool1 和 bool2 这两个变量是存放什么的呀……
bool1是用来寄存一个数字小于等于数组中数字的个数,当输入的a【i】小于等于所有数字的话,bool1就是n了,这个数字就是数组里最小的数字了,没想到更好的办法找到最值_(:з」∠)_
bool2同理,找最大值 liuzhengyuan 发表于 2020-5-4 18:35
求最大最小值就用这个方法:
emmmmm这样写的话,max和min的初始化感觉有点问题,不过能做完题就得了{:10_256:}多谢 张小艾 发表于 2020-5-4 19:21
emmmmm这样写的话,max和min的初始化感觉有点问题,不过能做完题就得了多谢
有什么问题呢? liuzhengyuan 发表于 2020-5-4 19:22
有什么问题呢?
就是最小值默认初始化为0的话,输入的都是正数,那输出的min=0了啊_(:з」∠)_ liuzhengyuan 发表于 2020-5-4 19:22
有什么问题呢?
而且好像有个交换的问题,min放在a;那a放在那里啊{:10_247:} 张小艾 发表于 2020-5-4 19:59
就是最小值默认初始化为0的话,输入的都是正数,那输出的min=0了啊_(:з」∠)_
初始化不要为 0 ,初始为数组中第一个数 张小艾 发表于 2020-5-4 20:02
而且好像有个交换的问题,min放在a;那a放在那里啊
你可以用
Min 来存放数组下标
这样方便多了 liuzhengyuan 发表于 2020-5-4 20:03
你可以用
Min 来存放数组下标
这样方便多了
顿悟啊!{:10_257:}我怎么没想到,可能我真是一只菜鸡{:10_266:}
页:
[1]