#include <stdio.h> #include <stdlib.h> #include <math.h> int a,b,y; int main() { printf("\nEnter a:"); scanf("%d", &a); int q; q = a/1000; int w; w = (a/100)%10; int e; e = (((a/10)%100)%10); int r; r = a%10; int b; b = r*1000+w*100+e*10+q; int a2; a2 = a*a; int b2; b2 = b*b; int b4; b4 = b2*b2; y = ((b2 + a2) / (b4 + a2 + 3)) + (b / (b2 + a2 + 1)); printf("Result %d",y); return 0; } C #include <stdio.h> #include <stdlib.h> #include <math.h> int a,b,y; int main() { printf("\nEnter a:"); scanf("%d", &a); int q; q = a/1000; int w; w = (a/100)%10; int e; e = (((a/10)%100)%10); int r; r = a%10; int b; b = r*1000+w*100+e*10+q; int a2; a2 = a*a; int b2; b2 = b*b; int b4; b4 = b2*b2; y = ((b2 + a2) / (b4 + a2 + 3)) + (b / (b2 + a2 + 1)); printf("Result %d",y); return 0; }
/*Задание d. Задано натуральное число а. Найти значение выражения (задание a. (y = ((b2 + a2) / (b4 + a2 + 3)) + (b / (b2 + a2 + 1))) ), если b – действительная переменная, содержащая число, образованное при перестановке первой и четвертой цифр числа a*/
Глобальные переменные - избавься от них. Ты два раза объяаил b. Проще всего было бы перевести а в строку, после получить строку с переставлеными символами и перевести ее в целочисленное. А ещё, было бы круто обозначать переменные не букваками, а их сутью. Не q, а firstSymbol
Такими темпами ты раньше состаришься чем решишь проблему :) я видел текст задания выше, у тебя еть пример входного числа и того что ожидается в ответе? И еще уточнение - b2 - это имется в виду b^2 (b возведённое во вторую степень)?
Banned24, #include <stdio.h> #include <math.h> #include <assert.h> int SwapDigits(int number, int digit1Position, int digit2Position) { assert(number > 0); int length = log10(number) + 1; int digits[length]; assert(digit1Position > 0); assert(digit1Position <= length); assert(digit2Position > digit1Position); assert(digit2Position <= length); for (int i = 0; i < length; i++) { digits[i] = number % 10; number = number / 10; } assert(number == 0); int tmp = digits[length - digit1Position]; digits[length - digit1Position] = digits[length - digit2Position]; digits[length - digit2Position] = tmp; for (int i = length; i > 0; i--) { number = number * 10 + digits[i - 1]; } return number; } int main() { printf("\nEnter a:"); int a; scanf("%d", &a); int b = SwapDigits(a, 1, 4); printf("a=%d\n", a); printf("b=%d\n", b); double b2 = pow(b, 2); double a2 = pow(a, 2); double b4 = pow(b, 4); double y = ((b2 + a2) / (b4 + a2 + 3)) + (b / (b2 + a2 + 1)); printf("y=%f", y); return 0; } C #include <stdio.h> #include <math.h> #include <assert.h> int SwapDigits(int number, int digit1Position, int digit2Position) { assert(number > 0); int length = log10(number) + 1; int digits[length]; assert(digit1Position > 0); assert(digit1Position <= length); assert(digit2Position > digit1Position); assert(digit2Position <= length); for (int i = 0; i < length; i++) { digits[i] = number % 10; number = number / 10; } assert(number == 0); int tmp = digits[length - digit1Position]; digits[length - digit1Position] = digits[length - digit2Position]; digits[length - digit2Position] = tmp; for (int i = length; i > 0; i--) { number = number * 10 + digits[i - 1]; } return number; } int main() { printf("\nEnter a:"); int a; scanf("%d", &a); int b = SwapDigits(a, 1, 4); printf("a=%d\n", a); printf("b=%d\n", b); double b2 = pow(b, 2); double a2 = pow(a, 2); double b4 = pow(b, 4); double y = ((b2 + a2) / (b4 + a2 + 3)) + (b / (b2 + a2 + 1)); printf("y=%f", y); return 0; }