有人知道在评估这些条件时可能会出现问题吗?整数应该被分配,以防万一它在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;
}
答案 0 :(得分:4)
if (vstup2 <= -10000 && vstup2 >= 10000) {
vstup2
没有任何值,该值可能都小于或等于-10000且大于或等于10000。如果这是被跳过的条件,则可能是编译器足够聪明看到条件永远无法满足。也许您打算像这样使用OR?
vstup2 <= -10000 || vstup2 >= 10000