Загрузка...

Нужно помочь выявить ошибку,на СИ

Тема в разделе C/C++ создана пользователем graulv 15 ноя 2018. 366 просмотров

Загрузка...
  1. graulv
    graulv Автор темы 15 ноя 2018 Заблокирован(а) 383 24 мар 2018
    Исходное задание: Найти количество чисел, которые не превосходят числа A и являются полными квадратами некоторого натурального числа.
    Работа функции KVADRAT = проверять число (n) на наличие квадратов натуральных чисел,если есть прибавлять к значению количество +1.
    Так вот,ошибка в том,что когда я пытаюсь ограничить число n(a в main),то программа буд-то не слушается и выводит неправильный ответ
    Код
    #include "pch.h"
    #include <iostream>
    #include <stdio.h>
    #include <math.h>
    int k;
    double kvadrat(int n)
    {
    int i;
    while (n > 0) {
    for (i = 1; i*i <= n; i++)
    if (i*i == n) k++;
    return k;
    }
    }

    int main()
    {
    int a, chislo, count = 0;
    printf("a=");
    scanf_s("%d", &a);
    printf("chislo=");
    scanf_s("%d", &chislo);
    while (a != 0) {
    if (a < chislo);
    count += kvadrat(a);
    printf("a=");
    scanf_s("%d", &a);
    }
    printf("Kolichestvo chisel=%d\n", count);
    return 0;
    }
     
    15 ноя 2018 Изменено
  2. Tekikaarisurf
  3. graulv
    graulv Автор темы 15 ноя 2018 Заблокирован(а) 383 24 мар 2018
  4. BeatleJuice_inactive333016
    BeatleJuice_inactive333016 15 ноя 2018 God hates us all 41 11 мар 2018
    Немного не понял условия задачи. Вынеси return k в функции за пределы цикла while и int k замени на int k = 0
     
  5. TIgerbat
    TIgerbat 15 ноя 2018 Пытаюсь изучить C++ без опыта... 0 18 фев 2018
    Ограничь в самой функции!
     
  6. ma110y
    ma110y 15 ноя 2018 Недокодер/Недодизайнер 149 16 июн 2017
    Нихуя не понял условие задачи, но чисто по коду ошибки испарвил.
    #include "pch.h"
    #include <iostream>
    #include <stdio.h>
    #include <math.h>

    int kvadrat(int n) // везде юзаешь int, нафиг тебе дабл?
    {
    int i;
    int k = 0; // перед подстчетом нужно обнулить переменную. + используешь ее не глобально, поэтому в функцию ее
    while (n > 0) {
    for (i = 1; i*i <= n; i++)
    if (i*i == n) k++;
    }
    return k; // цикл сразу должен закончится, потом ты возвращаешь значение
    }

    int main()
    {
    int a, chislo, count = 0;
    printf("a=");
    scanf_s("%d", &a);
    printf("chislo=");
    scanf_s("%d", &chislo);
    while (a != 0) {
    if (a < chislo){ //схера после ифа ; ? Или { или вообще ничего
    count += kvadrat(a);
    printf("a=");
    scanf_s("%d", &a);
    } // хз зачем, но этот цикл будет работать пока ты не введешь 0
    printf("Kolichestvo chisel=%d\n", count);
    return 0;
    }
     
  7. swmf
    swmf 16 ноя 2018 101 8 дек 2017
    это не си, это с++, в си стиль написания кода немного другой
     
  8. BeatleJuice_inactive333016
    BeatleJuice_inactive333016 16 ноя 2018 God hates us all 41 11 мар 2018
    Это C
     
  9. AloneStare
    AloneStare 16 ноя 2018 Заблокирован(а) 118 12 июн 2017
    Хммм ахуенно у тебя не функция, а что - то возвращает :roflanPoker: Ты тупо сути не понял, иди учи алгоритмы, недокодер
     
  10. PuGoVkA
    PuGoVkA 16 ноя 2018 825 18 мар 2018
    щас бы язык определять по стилю написания:facepalm::facepalm::facepalm::facepalm::facepalm:
     
  11. swmf
    swmf 16 ноя 2018 101 8 дек 2017
    PuGoVkA, там стиль написания как в си++, в си функция main не возвращает ничего, и завершается какой-либо функцией завершения программы(ExitProcess, TerminateProcess), это си++, то, что он исопльзует CRT - ничего не говорит
     
  12. swmf
    swmf 16 ноя 2018 101 8 дек 2017
    PuGoVkA, он даже наверняка не поставил в настройках компилятора компиляцию си кода, вместо си++, так что говорить то и не о чем
     
  13. PuGoVkA
    PuGoVkA 16 ноя 2018 825 18 мар 2018
    Это называется не стиль,а синтаксис:facepalm:
     
  14. swmf
    swmf 16 ноя 2018 101 8 дек 2017
    PuGoVkA, одно и тоже в некотором смысле, стиль написания кода/синтаксис
     
  15. ExluZiver
    ExluZiver 16 ноя 2018 :sueta: Твори Добро | Твоя Совесть | Всем Счастья :sueta: 10 829 18 окт 2018
    Щас бы С++, СИ называть
     
  16. PuGoVkA
    PuGoVkA 16 ноя 2018 825 18 мар 2018
    Абсолютно разные вещи. Стиль написания может быть у программистов разный,но не у язвкрв
     
Top