求C中的最大和最小整数
正如我在另一个问题中提到的,我一直在K.N King的《C编程:现代方法》(2ndenn)中自学C语言 我很喜欢,但我希望在这里贴出这个奇怪的问题,如果合适的话,可以寻求建议,因为不幸的是我没有导师,有些问题会提出更多的问题,然后他们会回答 我有一个问题,要求我写一个程序,找出用户输入的四个整数中最大和最小的一个。。。我想出了一个办法来找到最大的,但我一辈子都不知道如何找到最小的。问题是,四个if语句就足够了。数学不是我的强项,我希望得到任何建议求C中的最大和最小整数,c,integer,C,Integer,正如我在另一个问题中提到的,我一直在K.N King的《C编程:现代方法》(2ndenn)中自学C语言 我很喜欢,但我希望在这里贴出这个奇怪的问题,如果合适的话,可以寻求建议,因为不幸的是我没有导师,有些问题会提出更多的问题,然后他们会回答 我有一个问题,要求我写一个程序,找出用户输入的四个整数中最大和最小的一个。。。我想出了一个办法来找到最大的,但我一辈子都不知道如何找到最小的。问题是,四个if语句就足够了。数学不是我的强项,我希望得到任何建议 #include <stdio.h>
#include <stdio.h>
int main(int argc, const char *argv[])
{
int one, two, three, four;
printf("Enter four integers: ");
scanf("%d %d %d %d", &one, &two, &three, &four);
if (four > three && four > two && four > one)
printf("Largest: %d", four);
else if (three > four && three > two && three > one)
printf("Largest: %d", three);
else if (two > three && two > four && two > one)
printf("Largest: %d", two);
else
printf("Largest: %d", one);
return 0;
}
#包括
int main(int argc,const char*argv[]
{
int一,二,三,四;
printf(“输入四个整数:”);
scanf(“%d%d%d%d”、&1、&2、&3、&4);
如果(四个>三个和四个>两个和四个>一个)
printf(“最大:%d”,四个);
else if(三个>四个和三个>两个和三个>一个)
printf(“最大:%d”,三个);
else if(两个>三个和两个>四个和两个>一个)
printf(“最大:%d”,两个);
其他的
printf(“最大:%d”,一个);
返回0;
}
我尽量让它简单,因为我只到了27章第5章
干杯
安德鲁另一种方式是:
int one, two, three, four;
//Assign values to the four variables;
int largest, smallest;
largest = max(max(max(one, two), three), four);
smallest = min(min(min(one, two), three), four);
没有一条if语句需要;)
swap()
函数的实现留作练习。printf(“最大:%d\n”,(一>二?一:二)>(三>四?三:四)
printf("Largest: %d\n",(one>two ? one:two)>(three>four ? three:four)
? (one>two ? one:two):(three>four ? three:four));
printf("Smallest: %d",(one<two ? one:two)<(three<four ? three:four)
? (one<two ? one:two):(three<four ? three:four));
?(一>二?一:二):(三>四?三:四);
printf(“最小的:%d)”,(一我有同一本书,我承认,那个程序让我很头疼。
对于初学者来说,这有点棘手
首先,比较第一对整数(代码中的a和b),并将局部最小值和最大值存储在某个位置。对第二对整数执行相同的操作。然后比较局部最小值以获得全局最小值,并对最大值执行相同的操作。如果是,则不超过四个
#include <stdio.h>
int main (void)
{
int a, b, c, d, min1, max1, min2, max2, min, max;
scanf ("%d %d %d %d", &a, &b, &c, &d);
if (a > b)
{
max1 = a;
min1 = b;
}
else
{
max1 = b;
min1 = a;
}
if (c > d)
{
max2 = c;
min2 = d;
}
else
{
max2 = d;
min2 = c;
}
if (min1 < min2) min = min1;
else min = min2;
if (max1 > max2) max = max1;
else max = max2;
printf ("%d %d", max, min);
return 0;
}
#包括
内部主(空)
{
int a,b,c,d,min1,max1,min2,max2,min,max;
scanf(“%d%d%d%d”、&a、&b、&c、&d);
如果(a>b)
{
max1=a;
min1=b;
}
其他的
{
max1=b;
min1=a;
}
如果(c>d)
{
max2=c;
min2=d;
}
其他的
{
max2=d;
min2=c;
}
如果(min1max2)max=max1;
else max=max2;
printf(“%d%d”,最大值,最小值);
返回0;
}
有更好的方法来解决这个问题,其中一些在这里展示,但本书在后面的章节中会介绍它们。我也在阅读K.N.King的“C编程:现代方法,第二版”。下面是我对这个问题的原始解决方案
请注意,我只使用了本书第5章介绍的C概念。最初的编程问题来自第5章,编程问题7
21 #include <stdio.h>
22
23 int main(void)
24 {
25 int i1, i2, i3, i4, large_1, small_1, large_2, small_2,
26 largest, smallest;
27
28 printf("\nEnter four integers: ");
29 scanf("%d %d %d %d", &i1, &i2, &i3, &i4);
30
31 if (i1 < i2) {
32 small_1 = i1;
33 large_1 = i2;
34 } else {
35 small_1 = i2;
36 large_1 = i1;
37 }
38
39 if (i3 < i4) {
40 small_2 = i3;
41 large_2 = i4;
42 } else {
43 small_2 = i4;
44 large_2 = i3;
45 }
46
47 if (large_1 < large_2)
48 largest = large_2;
49 else
50 largest = large_1;
51
52 if (small_1 < small_2)
53 smallest = small_1;
54 else
55 smallest = small_2;
56
57 printf("Largest: %d\n", largest);
58 printf("Smallest: %d\n\n", smallest);
59
60 return 0;
61 }
21#包括
22
23内部干管(无效)
24 {
25 int i1,i2,i3,i4,大_1,小_1,大_2,小_2,
26最大,最小;
27
28 printf(“\n输入四个整数:”);
29 scanf(“%d%d%d%d”、&i1、&i2、&i3、&i4);
30
31如果(i1
#包括
/*
解决方案1
内部主(空){
int a1、a2、a3、a4、max、min、max1、min1、max2、min2;
printf(“输入四个整数:”);
scanf(“%d%d%d%d”、&a1、&a2、&a3、&a4);
如果(a1>a2){
max1=a1;
min1=a2;
}否则{
max1=a2;
min1=a1;
}
如果(a3>a4){
max2=a3;
min2=a4;
}否则{
max2=a4;
min2=a3;
}
如果(max1>max2)
max=max1;
其他的
max=max2;
if(min1a2){
int temp1=a1;a1=a2;a2=temp1;//交换数字(a1包含最小的数字)
}
如果(a3>a4){
int temp2=a3;a3=a4;a4=temp2;//交换数字(a1包含最小的数字)
}
如果(a1>a3){
int temp3=a1;a1=a3;a3=temp3;//交换数字(a1包含最小的数字)
}
如果(a2>a4){
int temp4=a2;a2=a4;a4=temp4;//交换数字(a1包含最小的数字)
}
printf(“最大:%d\n”,a4);
printf(“最小的:%d\n”,a1);
}
我用不到4条if语句解决了这个问题,以下是我的解决方案:
#include<stdio.h>
int main(void){
int no1, no2, no3, no4;
int max1, max2, max3, min1, min2, min3;
printf("Enter four integers:");
scanf_s("%d %d %d %d", &no1, &no2, &no3, &no4);
if(no1 > no2 || no1 < no2 && no3 > no4 || no3 < no4){
no1 > no2 ? (max1=no1) : (max1=no2);
no1 > no2 ? (min1=no2) : (min1=no1);
no3 > no4 ? (max2=no3) : (max2=no4);
no3 > no4 ? (min2=no4) : (min2=no3);
}
if(max1 > max2 || max1 < max2 && min1 > min2 || min1 < min2){
max1 > max2 ? (max3=max1) : (max3=max2);
min1 > min2 ? (min3=min2) : (min3=min1);
}
printf("The largest number is %d \n", max3);
printf("The smallest number is %d \n", min3);
}
#包括
内部主(空){
国际机场1号、2号、3号、4号;
int max1,max2,max3,min1,min2,min3;
printf(“输入四个整数:”);
扫描(“%d%d%d%d”、&no1、&no2、&no3、&no4);
如果(no1>no2 | | no1no4 | | no3no2?(max1=no1):(max1=no2);
no1>no2?(min1=no2):(min1=no1);
no3>no4?(max2=no3):(max2=no4);
no3>no4?(min2=no4):(min2=no3);
}
如果(max1>max2 | | max1min2 | | min1max2?(max3=max1):(max3=max2);
min1>min2?(min3=min2):(min3=min1);
}
printf(“最大的nu
#include <stdio.h>
/*
SOLUTION 1
int main(void) {
int a1,a2,a3,a4,max,min,max1,min1,max2,min2;
printf("Enter four integers : ");
scanf("%d %d %d %d",&a1,&a2,&a3,&a4);
if (a1 > a2) {
max1 = a1;
min1 = a2;
} else {
max1 = a2;
min1 = a1;
}
if (a3 > a4) {
max2 = a3;
min2 = a4;
} else {
max2 = a4;
min2 = a3;
}
if (max1 > max2)
max = max1;
else
max = max2;
if (min1 < min2)
min = min1;
else
min = min2;
printf("Largest : %d\n",max);
printf("Smallest : %d\n",min);
}
*/
/*
SOLUTION 2
*/
int main(void) {
int a1,a2,a3,a4;
printf("Enter four integers : ");
scanf("%d %d %d %d",&a1,&a2,&a3,&a4);
if (a1 > a2) {
int temp1 = a1; a1 = a2; a2 = temp1; // Swap the numbers (a1 to contain smallest number)
}
if (a3 > a4) {
int temp2 = a3; a3 = a4; a4 = temp2; // Swap the numbers (a1 to contain smallest number)
}
if (a1 > a3) {
int temp3 = a1; a1 = a3; a3 = temp3; // Swap the numbers (a1 to contain smallest number)
}
if (a2 > a4) {
int temp4 = a2; a2 = a4; a4 = temp4; // Swap the numbers (a1 to contain smallest number)
}
printf("Largest : %d\n",a4);
printf("Smallest : %d\n",a1);
}
#include<stdio.h>
int main(void){
int no1, no2, no3, no4;
int max1, max2, max3, min1, min2, min3;
printf("Enter four integers:");
scanf_s("%d %d %d %d", &no1, &no2, &no3, &no4);
if(no1 > no2 || no1 < no2 && no3 > no4 || no3 < no4){
no1 > no2 ? (max1=no1) : (max1=no2);
no1 > no2 ? (min1=no2) : (min1=no1);
no3 > no4 ? (max2=no3) : (max2=no4);
no3 > no4 ? (min2=no4) : (min2=no3);
}
if(max1 > max2 || max1 < max2 && min1 > min2 || min1 < min2){
max1 > max2 ? (max3=max1) : (max3=max2);
min1 > min2 ? (min3=min2) : (min3=min1);
}
printf("The largest number is %d \n", max3);
printf("The smallest number is %d \n", min3);
}
if (a > b) {
max = a;
min = b;
} else {
max = b;
min = a;
}
if (c > d) {
max2 = c;
min2 = d;
} else {
max2 = d;
min2 = c;
}
if (max < max2) {
max = max2;
}
if (min > min2) {
min = min2;
}