Форум программистов, компьютерный форум, киберфорум
C для начинающих
Войти
Регистрация
Восстановить пароль
 
0 / 0 / 0
Регистрация: 05.12.2018
Сообщений: 3
1

Help новичку в развитии навыков!

05.12.2018, 03:16. Просмотров 377. Ответов 1


Подскажите, пожалуйста, что здесь не так, и если здесь всё так, то почему компилятор на выходе, после введения x=2 и n=3, выводит ответ на экран "y=0"??

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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
#include <stdio.h> 
#include <iostream> 
#include <math.h>
 
int main()
{
    int x, n;
    int y = 1;
    puts("Enter number and exponent: ");
    scanf_s("%f", &x);
    scanf_s("%f", &n);
    if (x==0) 
        if (n == 0) {
            puts("y=1\n");
        }
        else {
            puts("y=0\n");
        }
    else {
        if (n == 0) {
            puts("y=1\n");
        }
        else {
            if (n > 0) {
                if (n == 1) {
                    y = x;
                    printf("y = %d", y);
                }
                else {
                    int c = 1;
                    do {
                        y = y * x;
                        ++c;
                    } while (c <= n);
                    printf("y = %d", y);
                }
            }
            else {
                if (n == -1) {
                    int c = -1;
                    do {
                        y = y * (1 / x);
                        --c;
                    } while (c <= n);
                }
                else {
                    y = 1 / x; 
                }
            }
            printf("y = %d", y);
        }
    }
    system("pause");
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
05.12.2018, 03:16
Ответы с готовыми решениями:

Тупик в развитии
Привет. Как бы лучше начать. Перед тем как создавать топик в этом разделе, 3-4 часа читал различные...

Базовые процессы и явления в развитии российского общества
помогите пожалуйста с вопросиком из контрольной: Перечислите базовые процессы и явления в развитии...

Тенденции в развитии JavaSCRIPT на основе анализа изменений в версиях ЕС-2015,16,17
Помогите, пожалуйста, ответить на вопрос!

Нужен совет от java программистов.или разговор о жизни, судьбе, развитии
Вообщем добрый день всем...Начну с начала, примерно прошлым летом я начал учить С++ с нуля,...

1
2757 / 1704 / 352
Регистрация: 09.09.2017
Сообщений: 7,167
05.12.2018, 11:02 2
Цитата Сообщение от Начинающий-Лох Посмотреть сообщение
Подскажите, пожалуйста, что здесь не так
1. Нет тегов кода ([CPP][/CPP]). Чуть выше редактора сообщения есть кнопочки с названиями различных языков. Выделяете свой код, нажимаете кнопочку и код отображается нормально.
2. Нет описания задачи. Вы не написали чего хотите добиться, на каких тестах получаются какие результаты, каких результатов ожидаете и почему.
3. Вы путаете компиляцию и выполнение программы.

Добавлено через 4 минуты
Цитата Сообщение от Начинающий-Лох Посмотреть сообщение
C++
1
2
3
4
5
int x, n;
int y = 1;
puts("Enter number and exponent: ");
scanf_s("%f", &x);
scanf_s("%f", &n);
Вы объявляете переменные как int, но вводите как float

Добавлено через 9 минут
Собственно, основная проблема была именно в этом. После исправления на
C++
1
2
scanf("%i", &x);
scanf("%i", &n);
Код
$ g++ main.c -Wall -Wextra
misha@debian:~$ ./a.out 
Enter number and exponent: 
2 3
sh: 1: pause: not found
y = 8y = 8$
Осталось только допилить код, чтобы он был менее ветвистым и исправить отрицательные степени: их в целых числах не вычислить
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <stdio.h>
#include <math.h>
 
int main(){
  double x;
  int n;
  double y = 1;
  puts("Enter number and exponent: ");
  scanf("%lf%i", &x, &n);
  if(n < 0){x=1/x; n=-n;}
  for(; n>0; n--){
    y *= x;
  }
  printf("%lf\n", y);
}
Код
$ gcc main.c -Wall -Wextra -Wpedantic
$ ./a.out 
Enter number and exponent: 
2 3
8.000000
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
05.12.2018, 11:02

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь или здесь.

С++ - развитие навыков
Здравствуйте! Опять я тут с тупыми темами, прошу простить идиота еще раз :) Суть такая: я знаю...

Закрепление навыков C#
Изучаю C# уже около 5-ти мясяцев. Постоянно пытаюсь придумывать различные идеи по поводу того, что...

Книги для улучшения навыков
Посоветуйте какие-нибудь хорошие книги для улучшения навыков. Основы я вроде как уже знаю, и...

Реализация умений навыков в roguelike
Создал несколько интерфейсов и базовых классов для игры (ещё не полностью реализованы). Встал...


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

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

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