Форум программистов, компьютерный форум, киберфорум
Наши страницы
C для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
4ESTN1Y
0 / 0 / 0
Регистрация: 05.11.2018
Сообщений: 14
1

Ввести два целых положительных числа a и b; вычислить и вывести степень b числа

08.11.2018, 00:24. Просмотров 831. Ответов 4

Разработать программу, которая позволяет ввести два целых положительных числа a и b; вычислить и вывести степень b числа a. Предусмотреть случай, когда абсолютное значение полученного результата превышает значение 32768.
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.11.2018, 00:24
Ответы с готовыми решениями:

Через указатели. Ввести два целых числа. Вычислить сумму, разность и деление этих чисел
#include<stdio.h> #include<conio.h> int main() { int a,b,*p1,*p2,*p3; float *p4;...

Даны два целых числа: А и В. Вывести все целые числа, расположенные между числами А и В в порядке убывания
Даны два целых числа: А и В. Вывести все целые числа, расположенные между числами А и В в порядке...

Ввести целое число N, вывести ближейшую к N степень числа 2
Ввести целое число N, вывести ближейшую к N степень числа 2. Здравствуйте, можно переделать код...

Сравнить два целых числа, вывести результат
Дорогие форумчане, еще один вопрос на сегодня. Признателен Вам. Задача. Ввод двух целых чисел....

Ввести n троек целых чисел; вывести номер первого четного числа в каждой тройке
#include<stdio.h> #include<conio.h> int main() { const int n=3,m=4; int i,j,ar,nomer;...

4
TrollHammer
527 / 347 / 176
Регистрация: 22.02.2018
Сообщений: 1,066
Записей в блоге: 2
08.11.2018, 01:17 2
Лучший ответ Сообщение было отмечено 4ESTN1Y как решение

Решение

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <stdio.h>
 
main()
{
    int a, b, c;
 
      printf("Input A, B:");
      scanf("%d%d", &a, &b);
 
      c=a;
 
       while(--b)
        a*=c;
 
      if(a>32768) printf("Error!!!\n");
      else printf("A^B = %d\n", a);
 
     system("pause");
}
1
Байт
Эксперт C
20467 / 12992 / 2733
Регистрация: 24.12.2010
Сообщений: 27,191
08.11.2018, 11:22 3
TrollHammer, боюсь, что условие a > 32768 не будет выполнено никогда.
Скорее всего, в учебке у 4ESTN1Y, используется транслятор с 2-х байтовым int-ом. И когда происходит переполнение (вылезание за разрядную сетку), не происходит ничего плохого, кроме того, что результат вычисляется по модулю 32768. Там есть некоторые тонкости, в самом деле a > 32767, но на этом пока не будем застрять внимание.
Что можно сделать? Один способ - перенести вычисления в тип long или double. Но он мне видится костылем.
Как поймать переполнение при умножении, не выходя из типа, я не знаю. Для сложения это не сложно. Если a>0, b>0, но a+b <= 0, то вот оно и случилось. Это работает даже для беззнаковых типов
C
1
2
3
unsigned int a, b, r;
r = a+b;
if (r < a) ... // Переполнение
0
4ESTN1Y
0 / 0 / 0
Регистрация: 05.11.2018
Сообщений: 14
12.11.2018, 16:12  [ТС] 4
TrollHammer, а как написать эту же программу, только с ипользованием структуры for?
0
4ESTN1Y
0 / 0 / 0
Регистрация: 05.11.2018
Сообщений: 14
13.11.2018, 17:10  [ТС] 5
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#include <stdio.h>
#include <conio.h>
#include <math.h>
 
int main(){
int a,b,c;
 
    printf("Enter two positive numbers\nA=");   
    scanf("%d",&a);
    if (a<0) {
        printf ("Number A isn't correct\n"); 
        printf ("Enter positive number A=");
        scanf("%d",&a);}
    
        printf("B=");
        scanf("%d",&b);
        if (b<0) {
        printf ("Number B isn't correct\n"); 
        printf ("Enter positive number B=");
        scanf("%d",&b);}
        
    for (c; c<32768; b++){
        c=pow(a,b);
   if((c>32768) || (c<-32768))printf("Error!!!\n");
   else printf("Result A^B = %d\n",c);
}
 
    getch();
    return 0;    
}
0
13.11.2018, 17:10
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.11.2018, 17:10

Найти сумму целых положительных чисел, кратных 3 и меньших 100, вывести числа на экран
Доброго времени суток, товарищи. Задание следующее: Найти сумму целых положительных чисел, кратных...

Считать два целых числа, определить, кратно ли первое второму, и вывести эту информацию на печать
Напишите программу, которая считывает два целых числа, после чего определяет, кратно ли первое,...

Пары простых чисел-близнецов. При существовании такой пары необходимо вывести эти два целых числа
Даны два целых числа. Необходимо проверить существование между ними пары простых чисел-близнецов....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru