Ik heb twee variabelen van long int
Type zoals hieronder weergegeven:
long int a=-2147483648, b=-2147483648;
a=a+b;
printf("%d",a);
Ik word nul. Ik heb geprobeerd het type te veranderen in long int
, maar ik krijg nog steeds niet het juiste antwoord.
Antwoord 1, Autoriteit 100%
U moet %ld
gebruiken om een long int
, en %lld
af te drukken om een long int
.
Merk op dat alleen long long int
groot genoeg is om het resultaat van die berekening (of, inderdaad, de ingangswaarden die u gebruikt) op te slaan.
U moet er ook voor zorgen dat u uw compiler in een C99-compatibele modus gebruikt (bijvoorbeeld met behulp van de -std=gnu99
OPTIE AAN GCC). Dit komt omdat de long int
Type pas bij C99 is geïntroduceerd; En hoewel vele compilers implementeren long long int
in de C90-modus als een extensie, kan de constante 2147483648
een type unsigned int
of unsigned long
in C90. Als dit het geval is in uw implementatie, dan heeft de waarde van -2147483648
ook niet-ondertekend type en zal daarom positief zijn, en het algehele resultaat is niet wat u verwacht.
Antwoord 2, Autoriteit 5%
Gebruik printf("%ld",a);
Bekijk formatteerspecificaties voor printf
Antwoord 3, Autoriteit 4%
Om input te gebruiken “Lange Int ” en uitvoer “Lange Int ” in C is:
long int n;
scanf("%ld", &n);
printf("%ld", n);
Invoer ” long long int” en output ” long long int” in C is:
long long int n;
scanf("%lld", &n);
printf("%lld", n);
Ik hoop dat je het hebt gewist..