Hеlp С Задачами

  • Автор темы Guest
  • Дата начала
G

Guest

#1
Не давно начал изучать язык программирования СИ.Помогите решить пару задач... 2 сутки сижу над ними... В стандартном написании CИ....Я вообще делаю в Dev C++....


Дано число N. Сколько различных цифр в его десятичной записи?

--------------------------------------------------------------------------------------------------------------------------------

Вводиться массив и некоторое число Х. Сколько в массиве интервалов куда попадает заданное число?

--------------------------------------------------------------------------------------------------------------------------------

Разработать две функции,одна из которых вводит с клавиатуры набор данных в произвольной последовательности и размещает в памяти в переменном формате. Другая функция читает эти данные и выводит на экран.
В начале области памяти размещается форматная строка,аналогичная используемой в printf - (%d,%f и %s целое,вещественное и строку соответственно). Сразу же в след за строкой размещается последовательность целых,вещественных и строк в соответствии с заданным форматом
 
W

Whatka

#2
1.В чём конкретный вопрос?
2.Ты пытался решить задачу,что-то не получилось и у тебя в связи с этим возник вопрос.так?=>см.1.
3.Ты не пытался т.к. не знаешь какого-то теоритеческого вопроса(какие библиотеки подключить например)
и не нашёл ответ в интернете.=>см.1.
4.Ты не пытался сам решить и не хочешь даже пытаться?cм.4,5 правил форума (в верху страницы)
 
G

Guest

#3
Whatka
Первую задачу решил....
Я сейчас сижу и пытаюсь их решить... Во второй задаче я понимаю смысл,но не знаю как применить массив с циклом. Чуть позже либо сделаю её,либо скину часть программы..
На счет третьей задачи вообще молчу. Динамический массив могу ввести,но не знаю как с ним работать.
 
G

Guest

#5
2-рая задача. Впринципе толком я пока ничего не написал...Хотя бы совет дайте с чего начать.
C++:
#include<stdio.h>
#include<conio.h>
main(){
int str[100];
int X,i;
scanf("%i",&X);
for(i=0;str[i]!='\0';i++){


}
printf("%i",i);
getch();
return 0;
}
 
W

Whatka

#6
начнём так
что значит интервал попадания числа?это его индекс в массиве?
если да то что если повторяющийся элемент?
 
G

Guest

#7
Ну это попадание числа в интервал. На примерах объяснять не буду. Это и так понятно. Пришел к тому,что нужно воспользоваться

C++:
X>=str[i]  &&	X<=str[i+1]
 
G

Guest

#9
нет не понятно

причём тебе
:google: Выразился не правильно. Да и вопрос был вывернут. Изначальный вопрос такой
Сколько в массиве интервалов куда попадает заданное число?
То есть, вводим какой-то набор чисел,например 12345, и вводим число,например 3. Мы должно провести проверку, попадает ли число в интервал 2-х цифр. То есть тут ответ будет 2 т.к. между 2 и 3 && 3 и 4, число 3 попало в интервал

Пришел теперь к этому....
C++:
#include<stdio.h>
#include<conio.h>
main(){
char str[100];
gets(str);
int x,i;
scanf("%i",&x);
for(i=0;str[i]!='\0';i++){
if(x>=str[i] && x<=str[i+1])

}
printf("%i",i);
getch();
return 0;
}
 
W

Whatka

#10
ну всё задача решена

объяви целую переменную(счётчик)
+
три условия
два интервала у числа число в середине массива символов счётчик+2
слева
и
справа
интервал у числа соответсвенно в конце и в начале массива счётчик+1
 
G

Guest

#11
ну всё задача решена

объяви целую переменную(счётчик)
+
три условия
два интервала у числа число в середине массива символов счётчик+2
слева
и
справа
интервал у числа соответсвенно в конце и в начале массива счётчик+1
Спс,щас подправлю. Но 3 задача мне остается не понятной. Я только знаю,как ввести Динамический массив и подключить библиотеку,ну и функцию ввести
 
W

Whatka

#12
размещает в памяти в переменном формате
В начале области памяти размещается форматная строка,аналогичная используемой в printf - (%d,%f и %s целое,вещественное и строку соответственно). Сразу же в след за строкой размещается последовательность целых,вещественных и строк в соответствии с заданным форматом
:google:
объясни что надо сделать
 
G

Guest

#13
Слева
два интервала у числа число в середине массива символов счётчик+2
справа
интервал у числа соответсвенно в конце и в начале массива счётчик+1
Можно как-то разъяснить повнятнее? Что-то все в куче

объясни что надо сделать
Разработать две функции,одна из которых вводит с клавиатуры набор данных в произвольной последовательности и размещает в памяти в переменном формате. Другая функция читает эти данные и выводит на экран.Программа запрашивает и размещает в памяти несколько наборов данных при помощи первой функции,размещает их в стек/очередь,а затем читает их и выводит на экран при помощи второй. Размещение данных производить в статическом массиве байтов фиксированной размерности с контролем его переполнения.
 
W

Whatka

#14
k-счётчик интервалов
1234506789 ]50],[06[ -два интервала ->k=k+2;
0123456789 [01[ -один слево ->k=k+1;
1234567890 ]90] -один справо ->k=k+1;





объявляешь 3 статических массива целый,вещественный и символьный
в 1 функции
через 3 цикла(по одному на массив)
заполняешь их

во 2ой
вызываешь
 
G

Guest

#15
k-счётчик интервалов
1234506789 ]50],[06[ -два интервала ->k=k+2;
0123456789 [01[ -один слево ->k=k+1;
1234567890 ]90] -один справо ->k=k+1;
Так и не ясно зачем нам 3 условия вводить?

C++:
#include<stdio.h>
#include<conio.h>
#include<string.h>
main(){
char str[100];
gets(str);
int x,i,k=0;
scanf("%i",&x);
for(i=0;str[i]='\0';i++){
if(x>=str[i]&&x<=str[i+1]) k+=1;
if(x>=str[i+1]&&x<=str[i+2]&&x>=str[i+2]&&x<=str[i+3]) k+=2;
if(x>=str[i+4]&&x<=str[i+5]) k+=1;
}
printf("%i",k);
getch();
return 0;
}