我正在学习C而我无法找到解决问题的方法,所以我向你们求助于你们的专家。 我可以编译并运行我的代码,但在我输入所有变量后,程序给我分段错误(核心转储) 我在Ubuntu 14.04上运行Geany作为编辑器和gcc作为编译器。
我的英语不是最好的。
继承我的代码:
#include<stdio.h>
typedef struct
{
int inkomst;
int hyra;
int el;
int vatten;
int tele;
int forsakring;
int mat;
int klader;
int lan;
int transport;
int ovrigt;
int summa;
} base;
void budgetBase();
int main(int argc, char *argv[]){
budgetBase();
return 0;}
void budgetBase(base c){
printf("BudgetBase\n\n");
printf("Monthly income: ");
scanf("%d", &c.inkomst);
printf("\nRent: ");
scanf("%d", &c.hyra);
printf("\nElectric bill: ");
scanf("%d", &c.el);
printf("\nWater bill: ");
scanf("%d", &c.vatten);
printf("\nTele/data bill: ");
scanf("%d", &c.tele);
printf("\nInsurance bill: ");
scanf("%d", &c.forsakring);
printf("\nFood bill: ");
scanf("%d", &c.mat);
printf("\nClothing: ");
scanf("%d", &c.klader);
printf("\nMorgage: ");
scanf("%d", &c.lan);
printf("\nTransport: ");
scanf("%d", &c.transport);
printf("\nOther expenses: ");
scanf("%d", &c.ovrigt);
int sum = c.inkomst - c.hyra - c.el
- c.vatten - c.tele - c.forsakring
- c.mat - c.klader - c.lan - c.transport - c.ovrigt;
printf("\n\nSum: %d",sum);
return;}
我知道它看起来不错所以请你好。 :)
答案 0 :(得分:3)
void budgetBase(base c){
应该是
void budgetBase(){
base c
/*Rest of the code*/
因为你打电话
budgetBase();
没有任何参数。这应该与函数签名匹配。
顺便说一句,不需要函数return;
末尾的budgetBase()
。