我是 C 编程的新手,也是“编程”的新手。到现在还不到一个月。我制作了一个小程序,用于打印四个输入数字中最大和最小的整数。使用基本的 c 编程方法有什么最短的方法吗?
#include <stdio.h>
main()
{
int a, b, c, d, y;
printf("Enter four integers (separate them with spaces): ");
scanf("%d %d %d %d", &a, &b, &c, &d);
if (a>b && a>c && a>d){
if (b<c && b<d){
y = b;
}
else if (c<b && c<d){
y = c;
}
else if (d<b && d<c){
y = d;
}
printf("Largest: %d\n", a);
printf("Smallest: %d", y);
}
else if (b>a && b>c && b>d) {
if (a<c && a<d){
y = a;
}
else if(c<a && c<d){
y = c;
}
else if(d<a && d<c){
y = d;
}
printf("Largest: %d\n", b);
printf("Smallest: %d", y);
}
else if (c>a && c>b && c>d)
{
if (a<b && a<d){
y = a;
}
else if(b<a && b<d){
y = b;
}
else if(d<a && d<b){
y = d;
}
printf("Largest: %d\n", c);
printf("Smallest: %d", y);
}
else if (d>a && d>b && d>c) {
if (a<b && a<c){
y = a;
}
else if(b<a && b<c){
y = b;
}
else if(c<a && c<b){
y = c;
}
printf("Largest: %d\n", d);
printf("Smallest: %d", y);
}
return 0;
}
Run Code Online (Sandbox Code Playgroud)
欢迎来到编程世界。你会喜欢这里的:)
在逻辑思维中,您应该始终尝试考虑可以轻松扩展的通用解决方案。
最大值问题的更通用方法是任意设置最大值,然后使用循环比较所有其他值。
将数字放入数组中。
int array[] = {a,b,c,d};
Run Code Online (Sandbox Code Playgroud)
将最大值和最小值任意设置为数组的第一个元素
int max = array[0];
int min = array[0];
Run Code Online (Sandbox Code Playgroud)
将循环运行到数组的长度并将每个元素与最大值进行比较。如果大于最大值,则更新最大值。同样将每个元素与最小值进行比较,如果它小于最小值,则更新最小值。
int length = sizeof array / sizeof array[0];
for (int n = 0; n < length; n++)
{
if(array[n]>max)
{
max = array[i];
}
if(array[n]<min)
{
min = array[i];
}
}
printf("Maximum Number:\t%d\n",max);
printf("Minimum Number:\t%d\n",min);
Run Code Online (Sandbox Code Playgroud)
使用这种方法,您可以轻松扩展到大量输入,而且相当简单。