c语言设计万年历 输入任意年份,输出该年12个月份 输入任意年份月份,输出该年月日历程序直接输入年份和月份,打印对应日历。一年12个月是固定的,我就不写单独输入年份打印月份了
c++编程问题
c语言编程问题
#include
#include
struct student {
int num;
char name[20];
float score[4];
};
void input(struct student a[], int);
void aver(struct student a[], int,struct student b[]);
void order(struct student a[], int);
void output(struct student a[], int,struct student b[]);
int main() {
struct student stu[100];
struct student b[100];
int n;
printf("请输入学生个数:");
scanf("%d", &n);
input(stu, n);
aver(stu, n,b);
order(stu, n);
output(stu, n,b);
return 0;
}
void input(struct student a[], int n) {
int i, j;
// printf("请输入学生的学号,姓名,英语,数学,物理,语文成绩:\n");
for (i = 0; i < n; i++) {
printf("请输入第%d个学生的学号,姓名,英语,数学,物理,语文成绩:\n", i + 1);
scanf("%d", &a[i].num);
//gets(a[i].name);
scanf("%s", &a[i].name);
for (j = 0; j < 4; j++)
scanf("%f", &a[i].score[j]);
}
}
void aver(struct student a[], int n,struct student b[]) {
int i=0, j;
for (i = 0; i < n; i++) {
b[i].score[0] = 0;
for (j = 0; j < 4; j++)
b[i].score[0] += a[i].score[j];
b[i].score[0] = b[i].score[0] / 4;
}
}
void order(struct student a[], int n) {
int i, j;
struct student t[1];
for (i = 1; i < n; i++)
for (j = 0; j < n - i; j++)
if (a[j].score[3] < a[j + 1].score[3]) {
t[1] = a[j];
a[j] = a[j + 1];
a[j + 1] = t[1];
}
}
void output(struct student a[], int n,struct student b[]) {
int i, j;
printf("学号\t姓名\t 英语\t 数学\t 物理\t 语文\t 平均成绩如下:\n");
for (i = 0; i < n; i++) {
printf("%d\t%s\t", a[i].num, a[i].name);
for (j = 0; j < 4; j++)
printf("%.2f\t", a[i].score[j]);
printf("%.2f", b[i].score[0]);
printf("\n");
}
}
帮你改了一些,看看测试:
C语言编程问题?
思路:
1、利用ftell函数获取文件的长度(字节数)。
2、利用fread函数读取文件所有内容。
3、通过遍历字符串,进行大小写判断及转换。
下面是演示代码:(命令符不想输入,连续两次回车)
#include
#include
#include
#define FPH "C:\\test.txt"
long getFileSize(char path[]);//获取文件长度
char *readFFile(char path[]);//获取文件内容
int printfStrsByCommand(char *strs,char *com);//通过命令符,打印对应格式的字符串内容
//com为命令符,如下:(缺省传NULL,程序取默认值-p)
//-p 按原样打印
//-u 把输入转换成大写
//-l 把输入转换成小写
int main()
{
int i=0;
char *strs=NULL,com[3]={0};
strs=readFFile(FPH);
printf("请输入打印输出样式的命令符(-p\\-u\\-l):");
while(i<2)com[i++]=getchar();
printfStrsByCommand(strs,com);
free(strs);//这个释放对本程序无意义,可删除,因为程序到此就结束了。
strs=NULL;//但是如你后面还添加其它代码,strs不再使用需这样释放。
return 0;
}
int printfStrsByCommand(char *strs,char *com)
{
char c[]="-p",*p=NULL;
if(strs)
{
if(!com) com=c;
if(!strcmp(com,"-u"))
{
p=strs;
while(*p)
{
if(*p>='a' && *p<='z')
*p^=32;
p++;
}
printf("转换成大写打印输出:\n");
}
if(!strcmp(com,"-l"))
{
p=strs;
while(*p)
{
if(*p>='A' && *p<='Z')
*p^=32;
p++;
}
printf("转换成小写打印输出:\n");
}
if(strcmp(com,"-p") && strcmp(com,"-u") && strcmp(com,"-l"))
printf("无效命令符!按-p打印输出:\n");
}
printf("%s\n",strs);
return 1;
}
long getFileSize(char path[])
{
long flen;
FILE *fp=NULL;
fp=fopen(path,"rb");
if(!fp) return -1;
fseek(fp,0L,SEEK_END);
flen=ftell(fp);
fclose(fp);
return flen;
}
char *readFFile(char path[])
{
long size=0;
char *strs=NULL;
FILE *fp=NULL;
fp=fopen(path,"rb");
if(!fp){fclose(fp);return NULL;}
fseek(fp,0L,SEEK_SET);
size=getFileSize(FPH);
strs=(char *)malloc(sizeof(char)*(size+1));
if(!strs){{fclose(fp);return NULL;}}
if(fread(strs,1,size,fp) { free(strs); fclose(fp); return NULL; } strs[size]=0; fclose(fp); return strs; } 相关文章 A++这个编程语言好不好学?好学好学,很好学的。我想自学编程,好学吗?编程当然可以自学。自学编程大约需要两三个月,每天抽出两三个星期把基础全部学习一遍,其他都是建立在基础之上 三菱FX系列PLC怎么编写SFC程序块,自动,急停,手动,如何启动与停止这些块。FX系列里有个方便指令叫 IST 可以编写手动,回原点,单步运行,单周期运行,全自动运行,回原点启动,自动运 python随机森林分类模型,测试集和训练集的样本数没有准确按照70%和30%分配?进行比例划分的时候 从 int 型 转化为了 float 型, float型总是会有微小的误差的,这个不是大问题。 我想学编程拜师求指教首先是算法+数据结构. 会写程序是基础,学C语言,然后C++, 可以是JAVA. 数据库要懂,ACCESS这种小东西应该没问题,SQL常用要好好学. 数学,逻辑,编译原理, 如何用JAVA实现字符串简单加密解密?java加密字符串可以使用des加密算法,实例如下: package test; import java.io.FileInputStream; import java.io.FileOutputStream; import 编写一个程序,把片内RAM从30H开始存放的16个数据传送到片外RAM从0000H开始的单元中。1、首先在采用CCS6.0编译器进行代码编写时,要进行相应的设置,如下图所示。2、其中,外扩接在 B语言和C语言 有什么区别(越详细越好)不知道或者没听说过B语言的请不要凭着自己的感觉胡乱回答,误人子弟。 B语言是贝尔实验室开发的一种通用的程序设计语言,它是于1969年前后 请问一下这个C语言编程题怎么做(对于稍微有点基础人的来说很简单),很急,谢谢!!第一题(用数组编程)随机产生10个30~100(包括30,100)的正整数,求最大值,最小值,平均值,并显示整个数组的值和 现在学互联网技术还有前途吗?计算机的就业趋势 从总体上讲,社会对计算机人才总需求量有明显变化,但毕业生就业岗位分布和岗位层次将更加宽泛,需求的主体由政府机关、金融单位、C语言编程问题
#include C语言 编程 问题
程序运行时先进入第一个switch语句,即switch(a>0),你可能认为它是值是2,所以直接执行default了吧?其实它的值不是2,而是1,因为a>0是一个表达式,它返回的是真或假的值,因为a=2,是大于0的,所以这个式子成立,所以返回的值为真,在C中"真"用1表示,所以当a=2时switch(a>2)就等价于switch(1),执行第二个switch语句,即执行switch(b<0)因为b=7,是不小于0的,返回值为假(C中用0表示),所以这个语句等价于switch(0),而这个switch里没有case 0,所以跳出这个switch,不过要注意switch(a>0)中的case 1:C语言简单问题?
int的变量装不下15位那么大的,无法scanf("%d")输入,要表示这种超过计算机long大小的数据,最简单的就是使用字符串,例如要表示1000位的整数,可以定义的变量为: char big1[1000], big2[1000],big3[1000]; 用scanf("%s")或者gets读入数据,按照按右对齐进行加运算结果存入big3,最简单的办法是逆向big1、big2然后按位加结果保存到big3,最后逆向big后就是结果,形象点举例: 如果输入的big1是:123456789999999999 程序逆向排序为:999999999987654321 对big2同样的处理,然后就可以按位