Почему я получаю адрес как ans для первого
#include <stdio.h> #include <stdlib.h> #include <math.h> int main() { int t,i=0,j=0,g,b[i],n; float y; float a[j]; scanf("%d",&t); g=t; while(t--) { float s,d; s=1;d=0; scanf("%d",&n); b[j]=pow(2,n); while(n--) { y=(s+d)/2; s=d; d=y; } a[j]=y; j++; } for(i=0;i<g;i++) { printf("%g %d ",a[i]*b[i],b[i]); } return 0; }
Что я уже пробовал:
в то время как я ставлю вход 5 в качестве тестового кейса и 1 2 3 4 5 в качестве входного сигнала я получаю выход 5.25861 e+008 1051721728 1 4 3 8 5 16 11 ,неправильный 1-й, но до тестового случая 4 он приходит Райт
Mohibur Rashid
это c? вы не должны быть в состоянии скомпилировать.
Babbu Mishra
да,почему???я скомпилировал его с помощью codeblock.
CPallini
Для чего требуется ваш код?
Babbu Mishra
решение должно быть 1 2 1 4 3 8 5 16 11 32 например, 1/2,1/4,3/8,5/16,11/32 для 5 тестовых случаев и ввода 1 2 3 4 5 в основном я должен найти среднее значение предыдущих двух терминов, берущих 0 и 1 изначально, как (1+0)/2 , (0+t1)/2,(t1+t2)/2 и так далее.
CPallini
Извини, я тебя не понимаю.:
первый член, а именно (0+1)/2 = 1/2-это нормально.
второй срок (разве это не должно быть (1/2+2)/2=5/4 ?) ?
третий срок ?
Babbu Mishra
нет, я взял a=1 ,b=0,d=(a+b)/2, после этого я в цикле изменил a=b,b=d и так далее до конца цикла. то есть (1+0)/2,(0+раствор 1-го)/2,(Соль 1-го +соль 2-го)/2 и так далее.
спасибо за внимание ,была какая-то ошибка в объявлении массива, теперь все в порядке..........,