Получить a в степени 21 за шесть операций - C (СИ)

Формулировка задачи:

Дано вещественное число а. Пользуясь только операцией умножения, получить a21 за шесть операций. где ошибка?
#include "stdafx.h"
#include <conio.h>
#include <stdio.h>
#include <math.h>
#include <clocale>
 
void main()
{
 setlocale(LC_ALL,"Russian");
 int a,a2,a4,a8,a12,a20,a21;
 printf("Введите число a:");
 scanf("%d",&a);
 a2=a*a;
 printf("1:a^2=%d\n",a^2);
 a4=a^2*a^2;
 printf("2:a^2*a^2=%d\n",a^4);
 a8=a^4^a^4;
 printf("3:a^4^a^4=%d\n",a^8);
 a12=a^8*a^4;
 printf("4:a^8*(a^4=%d\n",a^12);
 a20=a^12*a^8;
 printf("5:a^12*a^8=%d\n",a^20);
 a21=a^20*a;
 printf("6:a^20*a=%d\n",a^21);
getch();
}
Добавлено через 5 минут надо в С,а не в C++

Код к задаче: «Получить a в степени 21 за шесть операций - C (СИ)»

textual
#include <stdio.h>
#include <math.h>
#include <clocale>
 
void main()
{
 setlocale(LC_ALL,"Russian");
 double a,a2,a4,a8,a12,a20,a21;
 
 printf("Введите число a:");
 scanf("%lf",&a);
 a2=a*a;
    printf("1:a^2=%lf\n",a2);
 a4=a2*a2;
    printf("2:a^2*a^2=%lf\n",a4);
 a8=a4*a4;
    printf("3:a^4^a^4=%lf\n",a8);
 a12=a8*a4;
    printf("4:a^8*(a^4=%lf\n",a12);
 a20=a12*a8;
    printf("5:a^12*a^8=%lf\n",a20);
 a21=a20*a;
    printf("6:a^20*a=%lf\n",a21);
getch();
}

7   голосов, оценка 4.429 из 5


СОХРАНИТЬ ССЫЛКУ