答案:学生成绩系统:#include "stdio.h"
#include <stdlib.h>
#include <string.h>
int i,j;
struct student/*结构体数组*/
{int num;
char name[12];
int score[3];
}allst[3];
void save()/*保存内容*/
{FILE *fp;
if((fp=fopen("F:\stud.dat","wb"))==NULL)
{printf("can not creat");
exit(0);
}
for(i=0;i<3;i++)
if(fwrite(&allst[i],sizeof(struct student),1,fp)!=1)
{printf("can not creat");
exit(0);
}
fclose(fp);
}
void input()/*输入*/
{for(i=0;i<3;i++)
{printf("input number,name\n");
scanf("%d,%s",&allst[i].num,&allst[i].name);
for(j=0;j<3;j++)
{printf("input the score\n");
scanf("%d",&allst[i].score[j]);
}
}
}
void f(int x[])/*平均值排序*/
{int i,t,flag,j;
do
{flag=0;
for(i=0;i<3;i++)
if(x[i+1]>x[i])
{t=x[i+1];
x[i+1]=x[i];
x[i]=t;
flag=1;
}
}while(flag);
}void load()
{FILE *fp;
allst[3];
if((fp=fopen("F:\stud.dat","rb"))==NULL) /*打开读取*/
{
printf("no");
exit(0);
}
while(!feof(fp))
{
fread(allst+i,sizeof(struct student),1,fp);
printf("%d,%s,%d,%d,%d\n",allst[i].num,allst[i].name,allst[i].score[0],allst[i].score[1],allst[i].score[2]);
i++;
}
}void jisuan()
{
int n,k,t,sum[3],ave[3];
for(j=0;j<3;j++)
{n=allst[0].score[j];
k=0;
for(i=0;i<3;i++)
{if(n<allst[i].score[j]){n=allst[i].score[j];k=i;}
}
printf("max score%d is %d %s %d\n",j,allst[k].num,allst[k].name,n);
}
for(i=0;i<3;i++)
{sum[i]=0;
for(j=0;j<3;j++)
{sum[i]+=allst[i].score[j];
}
ave[i]=sum[i]/3;
printf("avi[%d]=%d\n",i,ave[i]);
}
t=ave[0];
k=0;
for(i=1;i<3;i++)
if(t<ave[i])
{t=ave[i];
k=i;
}
printf("ave max is NO.%d %s %d\n",allst[k].num,allst[k].name,t);f(ave);
for(i=0;i<3;i++)
printf("%d\t",ave[i]);
}
main()
{FILE *fp;
input();/*输入数据*/
save();/*保存内容*/
load();/*读取*/
jisuan();/*运算*/
getch();
}公元钱五世纪,我国古代数学家张丘建在《算经》一书中提出了“百鸡问题”:鸡翁一值钱五,鸡母一值钱三,鸡雏三值钱一。百钱买百鸡,问鸡翁、鸡母、鸡雏各几何?
main( )
{
int cocks,hens,chicks;
cocks=0;
while(cocks<=19)
{
hens=0;
while(hens<=33)
{
chicks=100-cocks-hens;< BR> if(5*cocks+3*hens+chicks/3==100&&chicks%3==0)
printf("%d,%d,%d\n",cocks,hens,chicks);
hens=hens+1;
}
cocks=cocks+1;
}
}题目:打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数
本身。例如:153是一个“水仙花数”,因为153=1的三次方+5的三次方+3的三次方。
1.程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位。
2.程序源代码:
main()
{
int i,j,k,n;
printf("'water flower'number is:");
for(n=100;n<1000;n++)
{
i=n/100;
j=(n-i*100)/10;
k=n%10;
if(i*i*i+j*j*j+k*k*k==n)
printf("%d\n",n);
}
}先给这两道,还要可以跟我说
越简单的问题越难回答。
自已最好去看点相关的书,先了解格式,再试写程序。
先从经典程序入手:
#include<stdio.h> // 导入头文件
main()
{
printf("Hello World!"); //输出Hello World!
}