/ / Pridať 8 k zadanému číslu a potom ho rozdeliť 3. Teraz sa modul tohto čísla vezme s 5 a potom vynásobí výslednú hodnotu 5 [zatvorené] - c

Pridajte 8 k zadanému číslu a potom ho rozdeľte o 3. Teraz je modul tohto čísla zachytený 5 a potom vynásobte výslednú hodnotu o 5 [zatvorené] - c

Snažil som sa s operáciami priradenia a to fungovalo .., ale to nie je v prevádzke ...

int n;
printf("Enter a 4 digit numbern");
scanf("%d", &n);
float i;
i = (((n + 8)/3)%5)*5;
printf("%fn", i);

odpovede:

0 pre odpoveď č. 1

Všetky vaše hodnoty vo formulári sú celé čísla. Použije sa teda celočíselná aritmetika.

To znamená, že ak rozdelíte 11 3, dostanete 3, pretože celé čísla nemajú desatinné miesta. A to pokračuje cez celý váš vzorec.

Túto možnosť môžete obsadiť takto: ((float)n+8)...

Alebo by ste mohli urobiť len časť kalorizácie doslovne n+8.0f týmto spôsobom sa používa aritmetika s plávajúcou desatinnou čiarkou.

Ale dostanete problém s modulom, pretože nie je definovaný pre plávajúce body.

Takže ak chcete urobiť správne rozdelenie, ktoré potrebujetevýsledok v float, ale ako modulo očakáva celé čísla to nie je možné. Takže bez ďalšieho objasnenia buď dostanete "nesprávny" výsledok, pretože používate celočíselnú aritmetiku alebo máte problém s modulom.