2015-11-13 4 views
-17

Я хочу написать программу для вычисления k мощности n, определив функцию с именем power(k). Затем я хочу использовать ее в другом файле в том же проекте для вывода таблицы из 3^к, где диапазон k 0-9. Но я получил сообщение об ошибке, когда я попытался собрать мои коды.Ожидаемый идентификатор или '('

Я буду признателен, если вы могли бы указать свою ошибку.

// main.c 
// #9-product of n 
// 
// Created by Leslie on 11/13/15. 
// Copyright © 2015 Jiahui. All rights reserved. 
// 

#include <stdio.h> 
int n; 
long product; 

int main(int argc, char *argv[]) 
{ 
    long power(int k); 
    int k; 
    printf("Please input the number n and k\n"); 
    scanf("%d%d",&n,&k); 
    product=power(k); 
    printf("the product is %ld\n",product); 
} 

long power(int k) 
{ 
    product=1; 
    int i; 
    for (i=1;i<=k;i++) 
    { 
     product=product*n; 
    } 
    return product; 
} 

Вторая программа :

#include <stdio.h> 
#include "main.c" 
extern long power(int k); 

for(i=1;i<=9;i++) 
{ 
    printf("%d\t",power(k)); 
} 
+6

Пожалуйста, введите код здесь – Haris

+0

Код как изображение? Поместите это как форматированный текст здесь, пожалуйста. –

+0

Почему вы объявили прототип внутри 'main'? – ameyCU

ответ

1

Я не совсем понимаю смысл другого файла в том же проекте, что и для печати трех, но это, возможно, ваша домашняя работа.

В любом случае, я думаю, что все дело в том, чтобы увидеть, как включить файл, поэтому я также выделил функцию питания в другом файле.

power_calculator.c будет принимать два параметра, {число} и {мощность} соответственно.

Вот как вы можете это сделать:

power_calculator.c

// power_calculator {n} {k} 
// Calculates {n}^{k} 
#include <stdio.h> 
#include <stdlib.h> 
// #include <math.h> 
#include "math_power.h" 

int main (int argc, char *argv[]) 
{ 
    // two parameters should be passed, n, and k respectively - argv[0] is the name of the program, and the following are params. 
    if(argc < 3) 
     return -1; 
    // you should prefer using math.h's pow function - in that case, uncomment the #import <math.h> 
    //printf("%f\n", power(atof(argv[1]), atof(argv[2]))); 

    // atof is used to convert the char* input to double 
    printf("%f\n", math_power(atof(argv[1]), atof(argv[2]))); 

    return 0; 
}; 

math_power.h

#ifndef _MATH_POWER_H_ 
#define _MATH_POWER_H_ 

double math_power(double number, double power); 

#endif 

math_power.c

#include "math_power.h" 

double math_power(double number, double power){ 
    double result = 1; 
    int i; 

    for(i = 0; i < power; i++){ 
     result*=number; 
    } 

    return result; 
} 

powers_of _three.c

#include <stdio.h> 
#include "math_power.h" 

int main (int argc, char *argv[]) 
{ 
    int i; 
    // here is your range 0-9 
    for(i = 0; i < 10; i++) 
     printf("%f\n", math_power(3, i)); 

    return 0; 
}; 

Для компиляции либо powers_of_three.c или power_calculator.c, не забудьте включить math_power.h и math_power.c.