D
doojkee
Добрый вечер, форумчане, нужна ваша помощь, никак не могу додуматься, как сделать это задание:
Задание нужно выполнить на чистом Си.
Вот мои наработки:
В моей коде работает все, только для введенного значения 1, если 0, я не знаю, как дописать этот функционал!
Надеюсь на вашу помощь!
Установить в заданные пользователем значения некоторые разряды, количество которых и номера разрядов задаются с клавиатуры.
Более подробно:
1.вводим число
2.переводим его в 2ую систему
3.вводим 1 или 0
4.вводим число разрядов
5.вводим номера разрядов
6.заменяем в введенных разрядах значения 1 или 0 (в зависимости, от того, что мы ввели в п.3);
7.выводим измененное число
Задание нужно выполнить на чистом Си.
Вот мои наработки:
C++:
#include <stdio.h>
#include <conio.h>
#include <windows.h>
int output(char x[]){
int i,j;
for (i = 7; i >-1; i--)
for (j = 7; j >-1; j--){
printf("%d",(x[i]>>j)&1);
}
printf("\n");
}
int main(){
int i,n_bit,k_num_bits, number;
system("cls");
union{
double m;
char a[8];
}type;
printf("Enter the number: ");
scanf("%lf", &type.m);
output(type.a);
printf("Enter the '1' or '0': ");
scanf("%d", &number);
printf("Enter the numbers of bits: ");
scanf("%d", &n_bit);
for(i = 0;i < n_bit;i++){
printf("Enter the number of bits: ");
scanf("%d",&k_num_bits);
type.a[k_num_bits/8] = type.a[k_num_bits/8]^(1<<(k_num_bits-8*(k_num_bits/8)));
}
printf("\n");
output(type.a);
printf("\n");
printf("\nResult is: -> %lf ", type.m);
getch();
return 0;
}
В моей коде работает все, только для введенного значения 1, если 0, я не знаю, как дописать этот функционал!
Надеюсь на вашу помощь!