#c
Вопрос:
double drake_equation(double RofSF, double FSwP, int NofPSL, double PDL, double PwIL, double CwDC, int LofTRS);
int main(int argc, char **argv)
{
double RofSF[] = {1.0, 1.0, 1.5, 3.0};
double FSwP[] = {0.2, 0.5, 1.0, 1.0};
int NofPSL[] = {1, 5, 3, 5};
double PDL[] = {1.0, 1.0, 1.0, 1.0};
double PwIL[] = {1.0, 1.0, 0.0001, 1.0};
double CwDC[] = {0.1, 0.2, 0.001, 0.1};
int LofTRS[] = {1000, 1000000000, 304, 10000000};
double N;
int i;
for (i=1; i< 5; i )
{
N = drake_equation(RofSF[i], FSwP[i], NofPSL[i], PDL[i], PwIL[i], CwDC[i], LofTRS[i]);
printf("N=", "R*=", "fp=", "ne=%d", "fl=", "fi=", "fc=", "L=%d", N, RofSF[i], FSwP[i], NofPSL[i], PDL[i], PwIL[i], CwDC[i], LofTRS[i]);
}
return 0;
}
«я просмотрел другие сообщения об этой ошибке, но я действительно не понимаю, что мне нужно сделать с моим кодом, я получаю ошибку:
слишком много аргументов для формата [-Wformat-дополнительные аргументы] amp; «%f «ожидает аргумент типа «double», но аргумент 2 имеет тип » char *’ в строке 18.
любая помощь в том, что мне нужно изменить, была бы полезна, спасибо.
Комментарии:
1. Вы неправильно используете printf, вам следует указать только одну строку формата, за которой следует N параметров :
printf("N=, R*=, fp=, ne=%d, fl=, fi=, fc=, L=%dn", N, RofSF[i], FSwP[i], NofPSL[i], PDL[i], PwIL[i], CwDC[i], LofTRS[i]);
Ответ №1:
В вашем printf()
вызове у вас есть одна строка формата "N="
, за которой следуют 15 дополнительных аргументов. Поскольку в строке формата есть только один оператор форматирования, должен быть только один дополнительный аргумент. Это то, что «слишком много аргументов в пользу формата» пытается вам сказать.
И первым аргументом должен быть a double
(или a float
, который будет обновлен до double
из-за стандартных рекламных акций), так как именно этого ожидает
формат, но ваш первый аргумент-строка. Это то, что «%f» ожидает, что аргумент тубе «двойной»» пытается вам сказать.
Проблема в том, что вы разделяете строку формата на 8 отдельных аргументов. Это должна быть одна строка.
printf("N=, R*=, fp=, ne=%d, fl=, fi=, fc=, L=%d", N, RofSF[i], FSwP[i], NofPSL[i], PDL[i], PwIL[i], CwDC[i], LofTRS[i]);
Комментарии:
1. ооо, отличный улов, я буквально пытался определить, что не так, даже не замечая, что это отдельные строки.