C - 不评估条件
C - not evaluating condition
有人知道在评估这些条件时可能会出现什么问题吗?应该分配整数以防万一它在 od -10000 到 10000 的区间内但它不起作用。谢谢
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
int vstup1;
int vstup2;
int sucet = 0;
int rozdil = 0;
int soucin = 0;
int podil = 0;
float prumer = 0;
printf("INPUT FIRST INTEGER\n");
if (scanf("%d", &vstup1)&& vstup1 <= -10000 && vstup1 >= 10000) {
printf("WRONG INPUT\n");
return 0;
}
printf("INPUT SECOND INTEGER\n");
scanf("%d", &vstup2);
if (vstup2 <= -10000 && vstup2 >= 10000) {
printf("WRONG INPUT\n");
return 0;
}
sucet = (vstup1 + vstup2);
rozdil = (vstup1 - vstup2);
soucin = (vstup1 * vstup2);
podil = (vstup1 / vstup2);
prumer = ((vstup1 + vstup2)/2);
printf("Desitkova soustava: %i %i\n", vstup1, vstup2);
printf("Sestnactkova soustava: %x %x\n", vstup1, vstup2);
printf("Soucet: %i + %i = %i\n",vstup1, vstup2, sucet);
printf("Rozdil: %i - %i = %i\n",vstup1, vstup2, rozdil);
printf("Soucin: %i * %i = %i\n",vstup1, vstup2, soucin);
if (vstup2 == 0){
printf ("Nedefinovany vysledek!\n");
return 0;
}
else {
printf("Podil: %i / %i = %i\n",vstup1, vstup2, podil);
}
printf("Prumer: %0.1f \n",prumer);
return 0;
}
if (vstup2 <= -10000 && vstup2 >= 10000) {
vstup2
没有值,它可能小于或等于 -10000 且大于或等于 10000。如果这是被跳过的条件,可能是因为编译器足够聪明,可以看出条件永远无法满足。也许你打算像这样使用 OR?
vstup2 <= -10000 || vstup2 >= 10000
有人知道在评估这些条件时可能会出现什么问题吗?应该分配整数以防万一它在 od -10000 到 10000 的区间内但它不起作用。谢谢
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
int vstup1;
int vstup2;
int sucet = 0;
int rozdil = 0;
int soucin = 0;
int podil = 0;
float prumer = 0;
printf("INPUT FIRST INTEGER\n");
if (scanf("%d", &vstup1)&& vstup1 <= -10000 && vstup1 >= 10000) {
printf("WRONG INPUT\n");
return 0;
}
printf("INPUT SECOND INTEGER\n");
scanf("%d", &vstup2);
if (vstup2 <= -10000 && vstup2 >= 10000) {
printf("WRONG INPUT\n");
return 0;
}
sucet = (vstup1 + vstup2);
rozdil = (vstup1 - vstup2);
soucin = (vstup1 * vstup2);
podil = (vstup1 / vstup2);
prumer = ((vstup1 + vstup2)/2);
printf("Desitkova soustava: %i %i\n", vstup1, vstup2);
printf("Sestnactkova soustava: %x %x\n", vstup1, vstup2);
printf("Soucet: %i + %i = %i\n",vstup1, vstup2, sucet);
printf("Rozdil: %i - %i = %i\n",vstup1, vstup2, rozdil);
printf("Soucin: %i * %i = %i\n",vstup1, vstup2, soucin);
if (vstup2 == 0){
printf ("Nedefinovany vysledek!\n");
return 0;
}
else {
printf("Podil: %i / %i = %i\n",vstup1, vstup2, podil);
}
printf("Prumer: %0.1f \n",prumer);
return 0;
}
if (vstup2 <= -10000 && vstup2 >= 10000) {
vstup2
没有值,它可能小于或等于 -10000 且大于或等于 10000。如果这是被跳过的条件,可能是因为编译器足够聪明,可以看出条件永远无法满足。也许你打算像这样使用 OR?
vstup2 <= -10000 || vstup2 >= 10000