请教C语言编程问题!

请问下面的程序哪里出错了?怎么改成正确的!谢谢!#include<stdio.h>#include<string.h>#include<conio.h>#include<... 请问下面的程序哪里出错了?怎么改成正确的!谢谢!
#include<stdio.h>
#include<string.h>
#include<conio.h>
#include<iostream>
#define MAXNUM 800
#define Num_bed 79
#define Days 300
#define ymd 20080911

struct record
{
int flag;
int t_menzhen;
int t_ruyuan;
int fir_shoushu;
int sec_shoushu;
int t_chuyuan;
int shengyu;
};
int number=0;
int readdat_a(void);
int writeDat();
int date;
int M[][Days];
int table[Days][7];
struct record diary[MAXNUM];
int comput_out(struct record a);
int comput_come(void);
void matter(int out ,int come,int wait);
int CaculateWeekDay(int y,int m,int d);

void main()
{
int M[][Days];
int come,out,wait;
out=comput_out(diary);
come=comput_come();
matter(out,come,wait);
writeDat();
}
int readdat(void)
{
FILE *fp;
int i=0;
if((fp=fopen("data.txt","r"))==NULL)
return 1;
while(!feof(fp))
fscanf(fp,"%d,",&a[i++]);
fclose(fp);
return 0;
}
int writeDat(void)
{
FILE *fp;
int i;
fp=fopen("out.dat","w");
for(i=0;i<Days;i++)
{
for(int j=0;j<7;j++)
fprintf(fp,"%4d",table[i][j]);
fprintf(fp,"\n");
}
fclose(fp);
}
int comput_out(struct record a)
{
int o=0;
for(i=0;i<number;i++)
if(a[i].shengyu==0)
o++;
return (0);
}
int comput_come(void)
{
int a[Days],b[Days],c[Days],d[Days],e[Days];
int c=0;
readdat_a();
readdat_b();
readdat_c();
readdat_d();
readdat_e();
M[][Days]={ a[Days],b[Days],c[Days],d[Days],e[Days]};
for(i=0;i<5;i++)
c=c+M[i][data];
return(c);
}
void hospital(int a[][7],int k)
{
int n1=data[0][data];
int n2=data[1][data];
int n3=data[3][data];
int n4=data[4][data];
int n5=data[2][data];
static int N[5]={n1,n2,n3,n4,n5};

int m=0;
a[data][0]=data;
a[data][1]=k;
a[data][2]=m;
int Num_null=a[data-1][4]+k;
int Num_null=a[data-1][3]-k;
a[data][3]=Num_full-m;
a[data][4]=Num_null+m;
a[data][5]=0;
for(int j=0;j<5;j++)
{
m=N[j]+m;
if(m<Num_null)
{
a[data][3]=a[data][3]+N[j];
a[data][4]=a[data][4]-N[j];
a[data][5]=0;
a[data][6]=m;
}
else
{
a[data][3]=Num_bed;
a[data][4]=0;
a[data][6]=Num_null;
}
}
a[data][2]=m;
a[data][5]=m-a[data][6];
}
下面程序是接上面的,因为程序太长,所以分成两部分!
void matter(int out,int come,int wait)
{
for(int k=0;k<=Data;k++)
for (int j=1;j<7;j++)
table[k][j]=0;
for(int data=1;data<=Days;data++)
{
int year=0,month=0,day=0,week=0;
year=ymd/10000;
month=(ymd-year*10000)/100;
day=ymd-year*10000-month*100;
int riqi=CaculateWeekDay(year,month,day);
week=(data+riqi-1)%7;
switch(week)
{
case 0:hospital_mon(data,out);break;
case 1:hospital_tue(data,out);break;
case 2:hospital_wed(data,out);break;
case 3:hospital_thu(data,out);break;
case 4:hospital_fri(data,out);break;
case 5:hospital_sat(data,out);break;
case 6:hospital_sun(data,out);break;
}
}
}
展开
 我来答
zhaiweilei
2011-07-19
知道答主
回答量:40
采纳率:0%
帮助的人:26.5万
展开全部
我改了一个小时了,放弃了!!!!
终于该的没有编译错误了,但是程序逻辑全乱了,哈哈!

#include<stdio.h>
#include<string.h>
#include<conio.h>
//#include<iostream.h>
#define MAXNUM 800
#define Num_bed 79
#define Days 300
#define ymd 20080911

struct record
{
int flag;
int t_menzhen;
int t_ruyuan;
int fir_shoushu;
int sec_shoushu;
int t_chuyuan;
int shengyu;
};
int number=0;
int readdat_a(void);
int writeDat();
int date;
int M[][Days];
int table[Days][7];
struct record diary[MAXNUM];
int comput_out(struct record a);
int comput_come(void);
void matter(int out ,int come,int wait);
int CaculateWeekDay(int y,int m,int d);

void main()
{
//int M[][Days];
int come,out,wait;
out=comput_out(diary[0]);
come=comput_come();
matter(out,come,wait);
writeDat();
}
int readdat(void)
{
FILE *fp;
int a[Days],b[Days],c[Days],d[Days],e[Days];
int i=0;
if((fp=fopen("data.txt","r"))==NULL)
return 1;
while(!feof(fp))
fscanf(fp,"%d,",&a[i++]);
fclose(fp);
return 0;
}
int writeDat(void)
{
FILE *fp;

int i,j;
fp=fopen("out.dat","w");
for(i=0;i<Days;i++)
{
for(j=0;j<7;j++)
fprintf(fp,"%4d",table[i][j]);
fprintf(fp,"\n");
}
fclose(fp);
}
int comput_out(struct record a)
{
int i,o=0;
for(i=0;i<number;i++)
if(a.shengyu==0)
o++;
return (0);
}
int comput_come(void)
{
int a[Days],b[Days],c[Days],d[Days],e[Days];
int i, data,c1=0;

//M[][Days]={ a[Days],b[Days],c[Days],d[Days],e[Days]};

for(i=0;i<5;i++)
c1=c1+M[i][data];
return(c1);
}
void hospital(int a[][7],int k)
{
int data1,j,data[12][13];
int n1=data[0][data1];
int n2=data[1][data1];
int n3=data[3][data1];
int n4=data[4][data1];
int n5=data[2][data1];
static int N[5];
int Num_full;
int Num_null2;
int m=0;
a[data1][0]=data1;
a[data1][1]=k;
a[data1][2]=m;
Num_full=a[data1-1][4]+k;
Num_null2=a[data1-1][3]-k;
a[data1][3]=Num_full-m;
a[data1][4]=Num_null2+m;
a[data1][5]=0;
for(j=0;j<5;j++)
{
m=N[j]+m;
if(m<Num_null2)
{
a[data1][3]=a[data1][3]+N[j];
a[data1][4]=a[data1][4]-N[j];
a[data1][5]=0;
a[data1][6]=m;
}
else
{
a[data1][3]=Num_bed;
a[data1][4]=0;
a[data1][6]=Num_null2;
}
}
a[data1][2]=m;
a[data1][5]=m-a[data1][6];
}
void matter(int out ,int come,int wait)
{
;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lyqf365
2011-07-15 · TA获得超过1186个赞
知道小有建树答主
回答量:1291
采纳率:100%
帮助的人:875万
展开全部
错误太多了……从头文件引用就开始有问题了,如果是VC还可以,GCC的话 如果是C++原有的C头文件就要改成C开头的,比如 stdio.h 就要改成 cstdio (没有.h)的。
for(int i; /* */)类型的在C中是不允话的,要在for 之前声明,int i ; for(i /* */)

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^太多错误了,没法改了…………
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2011-07-20
展开全部
#include "stdio.h"
#include "string.h"
main()
{ FILE *fp;
char s1[1000],s2[1000],s3[2000],t;
int i,j,n;

if( ( fp=fopen("A","r") )==NULL )
exit(0);
fgets(s1,1000,fp);
fclose(fp);
strcpy(s3,s1);

if( ( fp=fopen("B","r") )==NULL )
exit(0);
fgets(s2,1000,fp);
fclose(fp);
strcat(s3,s2);

n=strlen(s3);
for( i=0;i<n-1;i++ )
for( j=i+1;j<n;j++ )
if( s3[i]>s3[j] )

if( ( fp=fopen("C","w") )==NULL )
exit(0);
fputs(s3,fp);
fclose(fp);
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
紫池蓉c
2011-07-14
知道答主
回答量:12
采纳率:0%
帮助的人:4.1万
展开全部
你问问题,好歹把你这程序执行的目的,期待的结果和遇到的问题说清楚啊,都不知道你这个程序用来干嘛的,怎么回答
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
爱读书的小齐呀
2011-07-14 · TA获得超过134个赞
知道小有建树答主
回答量:123
采纳率:0%
帮助的人:112万
展开全部
哥只想说,你的程序错误太多了。
更多追问追答
追问
我是新手,大哥你尽量修改好不好,我再加10分!
追答
不是分数的问题,我是想知道你是做的单片机的C还是单纯的C++?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式