c语言问题 我这个程序没有错误,但是运行有错误,不知道什么原因

#include<stdio.h>
struct activity{ //写一个活动的结构体
int begin; //活动开始时间
int end; //活动结束时间
char use; //活动(是/否)执行

};

void input_data();
int main(){
input_data();

return 0;
}

void input_data(){
int n;
int i,j;
struct activity a[n];
printf("请输入活动的个数:/n");
scanf("%d",&n);
printf("请依次输入活动的开始时间和结束时间:\n");
for(i=0;i<n;i++){
printf("\n请输入第%d个活动的开始时间:",i+1);
scanf("%d",a[i].begin);
printf("\n结束时间:");
scanf("%d",a[i].end);
}
for(j=0;j<n;j++){

printf("%d--%d",a[j].begin,a[j].end);

}
printf("/n");

} //system("pause");

我想把输入的结构体数组重新打印一边,可是exe停止工作了

以下是改好之后的正确程序,程序后面有错误详情
#include<stdio.h>
struct activity{ //写一个活动的结构体
int begin; //活动开始时间
int end; //活动结束时间
char use; //活动(是/否)执行

};
void input_data();
int main(){
input_data();

return0;
}
void input_data(){
int n;
int i,j;

printf("请输入活动的个数:\n");
scanf("%d",&n);
structactivity a[n];
printf("请依次输入活动的开始时间和结束时间:\n");
for(i=0;i<n;i++){
printf("\n请输入第%d个活动的开始时间:",i+1);
scanf("%d",&a[i].begin);
printf("\n结束时间:");
scanf("%d",&a[i].end);
}
for(j=0;j<n;j++){

printf("%d--%d\n",a[j].begin,a[j].end);

}
printf("\n");

} //system("pause");

错误详细:
第一处错误在input_data()函数的第三行,应该把这句话放到第五行scanf后面
第二处错误在input_data()函数的第四行,应该是\n而不是/n
第三、四处在第九和第11行,a[i]前面少了&
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-11-26
int n;
int i,j;
struct activity a[n];

这是不被允许的
相似回答