从 C 中的终端计算 min/max
Calculating min/max from the terminal in C
我想创建一个程序,当我输入 5 个数字时打印最大的第一个数字和最大的第二个数字。(1.value 的数字是=0)。当我输入更大的 5 个数字时没有问题小于 0,但是当我输入 5 个小于 0 的数字时,程序打印第一个最大的数字是 0,第二个最大的数字是 1。
#include <stdio.h>
int main() {
int number = 0, first, second, numbercounter = 0;
first = number;
while (numbercounter < 5) {
printf("5 tamsayi girin:", ++numbercounter);
scanf("%d", &number);
if (number > first) {
second = first;
first = number;
} else if (number > second)
second=number;
}
printf("En buyuk sayi: %d \n", first);
printf("En buyuk ikinci sayi:%d \n", second);
if (first % second == 0) {
printf("%d, %d'nin tam katidir.\n", first, second);
} else {
printf("%d, %d'nin tam kati degildir.\n", first, second);
}
if (first == second) {
printf("%d ve % esittir.\n", first, second);
} else {
printf("%d ve %d esit degildir.\n", first, second);
}
if (first % 2 != 0) {
printf("%d tektir.\n", first);
} else {
printf("%d cifttir.\n", first);
}
return 0;
}
有两个问题:
first
开始为 0
。如果 number
为负,则 if (number > first)
为假。
second
如果 number <= first
. 未初始化使用
使用 INT_MIN
作为您的初始值,这是您可以拥有的最大负整数。使用此声明
#include <stdio.h>
#include <limits.h>
int main()
{
int number = 0, first = INT_MIN, second = INT_MIN, numbercounter = 0;
也去掉那一行
first = number;
我想创建一个程序,当我输入 5 个数字时打印最大的第一个数字和最大的第二个数字。(1.value 的数字是=0)。当我输入更大的 5 个数字时没有问题小于 0,但是当我输入 5 个小于 0 的数字时,程序打印第一个最大的数字是 0,第二个最大的数字是 1。
#include <stdio.h>
int main() {
int number = 0, first, second, numbercounter = 0;
first = number;
while (numbercounter < 5) {
printf("5 tamsayi girin:", ++numbercounter);
scanf("%d", &number);
if (number > first) {
second = first;
first = number;
} else if (number > second)
second=number;
}
printf("En buyuk sayi: %d \n", first);
printf("En buyuk ikinci sayi:%d \n", second);
if (first % second == 0) {
printf("%d, %d'nin tam katidir.\n", first, second);
} else {
printf("%d, %d'nin tam kati degildir.\n", first, second);
}
if (first == second) {
printf("%d ve % esittir.\n", first, second);
} else {
printf("%d ve %d esit degildir.\n", first, second);
}
if (first % 2 != 0) {
printf("%d tektir.\n", first);
} else {
printf("%d cifttir.\n", first);
}
return 0;
}
有两个问题:
first
开始为0
。如果number
为负,则if (number > first)
为假。second
如果number <= first
. 未初始化使用
使用 INT_MIN
作为您的初始值,这是您可以拥有的最大负整数。使用此声明
#include <stdio.h>
#include <limits.h>
int main()
{
int number = 0, first = INT_MIN, second = INT_MIN, numbercounter = 0;
也去掉那一行
first = number;