#c
#c
Вопрос:
Вот мой main.c
файл:
#include <stdio.h>
#include "functions.h"
int main() {
helloWorld();
salaryPeriod();
return 0;
}
И вот мой salaryperiod.c
файл:
#include <stdio.h>
void salaryPeriod() {
int wage, days, sp1, sp2;
printf("Please enter wage:n");
scanf("%d", wage);
printf("Days worked:n");
scanf("%d", days);
printf("Salary period 1:n");
scanf("%d", sp1);
sp2 = ((wage * days) / 26) - sp1;
printf("%d", sp2);
}
И вот мой functions.h
файл:
#ifndef FUNCTIONS_H
#define FUNCTIONS_H
void helloWorld();
void exponent();
void fourNumsProduct();
void salaryPeriod();
#endif
Кто-нибудь знает, что происходит в моем коде?
Я везде искал статус выхода 5, но результата нет.
(Пожалуйста, будьте проще со мной, я новичок в C)
Комментарии:
1. Не могли бы вы отредактировать свой вопрос и добавить полную и неотредактированную расшифровку того, что именно вы ввели в эту программу и что именно она распечатала? Не могли бы вы также предоставить нам код для
helloWorld
функции, чтобы у нас была полная программа, которую мы могли скомпилировать и запустить для себя и наблюдать, как она терпит неудачу (надеюсь, так же, как она терпит неудачу для вас)?2. (Знаете ли вы, что вы можете отредактировать свой вопрос? Крошечное серое слово «редактировать» под тегами — это кнопка. Да, это плохой дизайн пользовательского интерфейса. Извините за это.)
3. на какой ОС работает?
4. Функции, которые не принимают параметров, должны быть объявлены с
void
ключевым словом, напримерint main(void)
,void helloWorld(void)
, и т.д.
Ответ №1:
В вашем коде есть несколько дефектов:
-
Знак амперсанда не указан для выражения адреса памяти в
scanf()
— возможная причина вашей ошибки:scanf("%d", wage); // should be scanf(..., amp;wage);
-
Такие переменные
wage, days, sp1, sp2
являются локальными и видны только функции. Его нельзя использовать где-либо за его пределами (если вы этого хотели).
Комментарии:
1. Спасибо за вашу помощь! Я не понимал, что перед моими переменными не было «amp;» в аргументах scanf.