Вот мой код:Неправильный выход при выполнении двойного массива в пау()
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
FILE *infile, *outfile;
int main(){
double landa, mu, lo, blocking_prob[4], mean_arrival_rate,
mean_service_rate, k[4], p[4];
infile = fopen("mm1.in", "r");
outfile = fopen("mm1.out", "w");
fscanf(infile, "%d %d %d %d %d %d",
&mean_arrival_rate, &mean_service_rate,
&k[0],&k[1],&k[2],&k[3]);
lo = mean_arrival_rate/mean_service_rate;
fprintf(outfile,
"Initial setting : mean_arrival_rate = %d , mean_service_rate = %d \n\n",
mean_arrival_rate,mean_service_rate);
for(int x=0;x<4;x++) {
printf("%f \n",pow(lo,k[x]));
blocking_prob[x]= ((1-lo)*pow(lo,k[x]))/(1- pow(lo,k[x]+1));
fprintf(outfile,"Blocking Probability is %f when K = %d \n\n",
blocking_prob[x],k[x]);
}
}
Выходные начинается с мощна (вот, к [х]), он выводит неправильный номер.
Я попытался заменить k [] на const (например, pow (lo, 5)), и он становится прав.
Есть ли решение?
Что содержит k? какой неправильный номер выводит? – User
Пожалуйста, открепите свой код перед отправкой вопроса. – Lundin
Вы сканируете цифры 'double'floating-point с'% d'. Вы должны использовать '% lf'. (Ваш компилятор предупредит вас о таких ошибках при включении предупреждений.) –