Форум программистов, компьютерный форум, киберфорум
Наши страницы

C для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 8, средняя оценка - 4.75
pasha-1-08
-29 / 0 / 0
Регистрация: 29.12.2010
Сообщений: 27
#1

Дана строка, содержащая число в десятичной - C (СИ)

23.02.2011, 01:36. Просмотров 1230. Ответов 5
Метки нет (Все метки)

Дана строка, содержащая число в десятичной системе исчисления.
Преобразовать число в строке к восьмеричной системе.

примечание использовать функций для работы со строками из
библиотек stdlib.h и string.h запрещено.
есть привер :::Дана строка (максимум 15 символов), содержащая целое незнаковое число в троичной системе исчисления. Перевести число в семеричную систему исчисления. Полученный результат вывести на экран.
Программа для задачи
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
#include <stdio.h>  //Библиотека ввода и вывода
int main(int argc, char *argv[])
{
  char str[16];             //Объявление строки
  printf("Введите число: ");//Приглашение к вводу строки
  gets(str);                //Ввод строки
  //Переменная для хранения числа и индексная переменная
  unsigned num = 0, i;
  /* ----------------------------------------------------
  В цикле осуществляется преобразование строки в число по
  основанию три
  ---------------------------------------------------- */
  //Цикл с первого до последнего символа строки
  for(i=0;str[i]!=0;i++){
    //Суммирование с числом текущей цифры строки
    num += str[i] - 48;
    //Умножение на основание системы исчисления
    if(str[i+1] != 0) num *= 3;
  }
  /* ----------------------------------------------------
  В цикле осуществляется преобразование в числа в строку
  по основанию семь
  ---------------------------------------------------- */
  //Цикл пока число больше ноля
  for(i=0;num>0;i++){
    //Запись в строку разряда числа
    str[i] = num%7 + 48;
    //Деление числа на основание системы исчисления
    num /= 7;
  }
  //Запись завершающего нуля в строку, в переменной i
  //содержится длина строки
  str[i] = 0;
  /* ----------------------------------------------------
  В цикле осуществляется обращение строки, так как при
  преобразовании числа в строку была получена обратная
  строка
  ---------------------------------------------------- */
  //Цикл от начала строки до ее середины
  for(int j=0;j<i/2;j++){
    char ch = str[j];     //Обратное отражение строки через
    str[j] = str[i-j-1];  //дополнительную переменную
    str[i-j-1] = ch;
  }
  printf(“Результат:);
  puts(str);          //Вывод результата на экран
  return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.02.2011, 01:36
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Дана строка, содержащая число в десятичной (C (СИ)):

Дана строка, содержащая пробелы. Найдите, сколько в ней слов - C (СИ)
Дана строка, содержащая пробелы. Найдите, сколько в ней слов (слово – это последовательность непробельных символов, слова разделены одним...

Дана строка, содержащая некоторый текст (включая пробелы и знаки препинания) - C (СИ)
УСЛОВИЕ : Дана строка, содержащая некоторый текст (включая пробелы и знаки препинания). Под словом понимается набор символов, не содержащий...

Дана строка, содержащая полное имя файла. Выделить из этой строки название первого каталога - C (СИ)
Дана строка, содержащая полное имя файла. Выделить из этой строки название первого каталога (без символа &quot;&quot;). Если файл содержится в...

Дана строка, содержащая пробелы. Найдите в ней самое длинное слово, выведите на экран это слово и его длину. - C (СИ)
Помогите пожалуйста с задачей... Дана строка, содержащая пробелы. Найдите в ней самое длинное слово, выведите на экран это слово и...

Дана строка. Найти символ в строке, встречающийся наибольшее число раз - C (СИ)
Дана строка. Найти символ в строке, встречающийся наибольшее число раз. Заранее спасибо!

Дана строка и число n. Верно ли, что в ней есть по крайней мере n подряд идущих букв a - C (СИ)
Дана строка и число n. Верно ли, что в ней есть по крайней мере n подряд идущих букв с помогите пожалуйста

5
igorrr37
1860 / 1478 / 232
Регистрация: 21.12.2010
Сообщений: 2,468
Записей в блоге: 11
23.02.2011, 12:06 #2
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
// переводит натуральное число из BASEFROM в BASETO систему счисления
 
#include<iostream>
#include<cmath>
#define BASEFROM 10
#define BASETO 8
 
int main(){
    int i=0, x=0;
    char a[20]{'\0'}, b[20], *p=a;
    std::cout<<"Input number in "<<BASEFROM<<" notation:\n";
    std::cin>>a;
    while(*(p+1)) ++p;
    for(; p>=a; --p, ++i){
        if(*p>'9'){
            *p=toupper(*p);
            *p-=7;
        }
        x+=int(*p-48)*pow(BASEFROM, i);
    }
    std::cout<<"number in 10 notation:\n"<<x<<"\n";
    i=0;
    while (x){
        b[i]=x%BASETO;
        x/=BASETO;
        ++i;
    }
    std::cout<<"number in "<<BASETO<<" notation:\n";
    while(--i>=0){
        b[i]>9? std::cout<<char(b[i]+55): std::cout<<int(b[i]);
    };
}
0
pasha-1-08
-29 / 0 / 0
Регистрация: 29.12.2010
Сообщений: 27
23.02.2011, 12:13  [ТС] #3
Это на языке С??? надо проверить !! просто у меня компилятор Pellic C

Добавлено через 3 минуты
нифига не работает !
0
igorrr37
1860 / 1478 / 232
Регистрация: 21.12.2010
Сообщений: 2,468
Записей в блоге: 11
23.02.2011, 12:25 #4
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
/* переводит натуральное число из BASEFROM в BASETO систему счисления
*/
#include<stdio.h>
#include<ctype.h>
#include<math.h>
#define BASEFROM 10
#define BASETO 16
 
int main(){
    int i=0, x=0;
    char a[20]={'\0'}, b[20], *p=a;
    printf("Input number in %d notation:\n", BASEFROM);
    gets(a);
    while(*(p+1)) ++p;
    for(; p>=a; --p, ++i){
        if(*p>'9'){
            *p=toupper(*p);
            *p-=7;
        }
        x+=(*p-48)*pow(BASEFROM, i);
    }
    printf("number in 10 notation:\n%d\n", x);
    i=0;
    while (x){
        b[i]=x%BASETO;
        x/=BASETO;
        ++i;
    }
    printf("number in %d notation:\n", BASETO);
    while(--i>=0){
        b[i]>9? printf("%c", b[i]+55): printf("%d", b[i]);
    };
}
1
pasha-1-08
-29 / 0 / 0
Регистрация: 29.12.2010
Сообщений: 27
23.02.2011, 20:50  [ТС] #5
Игорь так надо к восьмеричной системе а у тебя переводит написано к 16 ричной!!!

Добавлено через 2 минуты
ААА всё всё всё Игорёк всё ок !! работает спасибо!!! ещё сможешь одну сделать задачку?

Добавлено через 7 минут
igorrr37, Задана строка, содержащая целые числа (максимум 15 чисел). Упорядочить
целые числа в строке по убыванию.
0
igorrr37
1860 / 1478 / 232
Регистрация: 21.12.2010
Сообщений: 2,468
Записей в блоге: 11
23.02.2011, 21:46 #6
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
#include<stdio.h>
#include<stdlib.h>
 
int main(){
    char str[BUFSIZ], *p;
    gets(str);
    int nums[15], i, j, k, tmp;
    for(p=strtok(str, " "), i=0; p; p=strtok(NULL, " "), ++i){
        nums[i]=atoi(p);
    }
    for(j=1; j<i; ++j){
        tmp=nums[j];
        for(k=j-1; k>=0&&nums[k]<tmp; --k){
            nums[k+1]=nums[k];
        }
        nums[k+1]=tmp;
    }
    for(j=0; j<i; j++){
        printf("%d ", nums[j]);
    }
}
 
/*  534 12 87 756 13 5 5 6
*/
0
23.02.2011, 21:46
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.02.2011, 21:46
Привет! Вот еще темы с ответами:

Дана строка предложение и слово. Определить число вхождений заданного слова в предложение - C (СИ)
Дана строка предложение и слово. Определить число вхождений заданного слова в предложение.

Дана матрица размерностью nxn, содержащая вещественные числа - C (СИ)
Дана матрица размерностью nxn, содержащая вещественные числа. Отсортировать каждый столбец матрицы по возрастанию элементов методом выбора

Проверить, есть ли в матрице хотя бы одна строка, содержащая отрицательный элемент - C (СИ)
2)Проверить, есть ли в матрице хотя бы одна строка, содержащая отрицательный элемент, и найти ее номер. Все элементы столбца с таким же...

Проверить, есть ли в матрице хотя бы одна строка, содержащая отрицательный элемент - C (СИ)
Проверить, есть ли в матрице хотя бы одна строка, содержащая отрицательный элемент, и найти ее номер. Все элементы столбца с таким же...


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

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

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