关于C语言的,下周要交,帮我啊~~~~

作者&投稿:再宙 (若有异议请与网页底部的电邮联系)
急!下周就要交了。望各位大神给帮帮忙``C语言的程序。~

及格是>=60,还是60~69??
这是我的代码:
#include
#include
#include
#include

void get_score(float * score);
void put_score(float * score);
void count_rank(float * score);
void count_maxmin(float * score);
void count_sum_average(float * score);

int main(void)
{
float score[30] = {0};
char key[7] = {0};
char c;

for (int i = 0; i < 30; ++i)
{
printf("请输入密码:");
for (int j = 0; j < 6; ++j)
{
key[j] = getch();
putchar('*');
}
if (strcmp(key, "123456"))
printf("
您密码输入错误!");
else
break;
}

if (i == 3)
exit(1);

while (1)
{
printf("

欢迎使用学生成绩统计系统


");
printf("|-------------------------------------------|
");
printf("| 学生成绩统计系统 |
");
printf("|-------------------------------------------|
");
printf("| 1--录入学生成绩 |
");
printf("| 2--显示学生成绩 |
");
printf("| 3--统计总分和平均分 |
");
printf("| 4--统计最高分和最低分 |
");
printf("| 5--统计各分数段人数 |
");
printf("| 0--退出 |
");
printf("|------------------------------------|
");
printf(" 请选择主菜单序号:");

c = getche();

if (c == '1')
get_score(score);
if (c == '2')
put_score(score);
if (c == '3')
count_sum_average(score);
if (c == '4')
count_maxmin(score);
if (c == '5')
count_rank(score);
if (c == '0')
{
printf("
");
exit(1);
}

printf("
按任意键返回主菜单");
getch();
}

return 0;
}

void get_score(float * score)
{
int i;
float t = 0;

printf("
请输入学生成绩(-1结束)
");
for (i = 0; i < 30; ++i)
{
printf("第%d个学生的成绩:", i+1);
scanf("%f", &t);

if (t == -1)
return;
else
score[i] = t;
}
}

void put_score(float * score)
{
int i;

printf("
学生成绩显示如下:
");
printf(" 学生序号成绩
");
for (i = 0; i < 30; ++i)
{
printf(" %d %4.0f
", i+1, score[i]);
}
}

void count_rank(float * score)
{
int i;
int rank[5] = {0};

for (i = 0; i < 30; ++i)
{
if (score[i] < 60)
++rank[0];
if (score[i] >= 70 && score[i] <= 79)
++rank[1];
if (score[i] >= 80 && score[i] <= 89)
++rank[2];
if (score[i] >= 90 && score[i] <= 100)
++rank[3];
}

rank[4] = 30 - rank[0];

printf("
等级为优的人数为:%d
", rank[3]);
printf("等级为良的人数为:%d
", rank[2]);
printf("等级为中的人数为:%d
", rank[1]);
printf("等级为及格的人数为:%d
", rank[4]);
printf("等级为不及格的人数为:%d
", rank[0]);
}
void count_maxmin(float * score)
{
float max, min;
int i;

max = 0;
min = 100;
for (i = 0; i < 30; ++i)
{
if (max < score[i])
max = score[i];
if (min > score[i])
min = score[i];
}

printf("
课程的最高分为%4.0f, 最低分为%4.0f
", max, min);
}
void count_sum_average(float * score)
{
int i;
float sum, average;

sum = 0;
for (i = 0; i < 30; ++i)
{
sum = sum + score[i];
}

average = sum / 30;

printf("
课程的总分为%4.0f,平均分为%5.1f
", sum, average);
}

(12).
#include
void main()
{
int a[9],i;
void f(int a[],int n);
for(i=0;i<=9;i++)
scanf("%d",&a[i]);
f(a,9);
getch();
}
void f(int a[],int n)
{
int i,min,max;
int j=0;int k;
min=a[0];
for(i=1;i<=n;i++)
{
if(min>a[i])
{
min=a[i];
j=i;
}
}
k=a[0];
a[0]=a[j];
a[j]=k;
max=a[0];
j=0;
for(i=1;i<=n;i++)
{
if(max<a[i])
{
max=a[i];
j=i;
}
}
k=a[n];
a[n]=a[j];
a[j]=k;
for(i=0;i<=9;i++)
printf("%d ",a[i]);
}
这样应该行了!输入10个不相同的数 数与数之间以空格间隔 输完后按回车运行
(13).16空填c=getchar()
17空填1

第一章:缩进格式

Tab是8个字符,于是缩进也是8个字符.有很多怪异的风格,他们将缩进格式定义为4个字符(设置为2个字符!)的深度,这就象试图将PI定义为3一样让人难以接受.

理由是:缩进的大小是为了清楚的定义一个块的开始和结束.特别是当你已经在计算机前面呆了20多个小时了以后,你会发现一个大的缩进格式使得你对程序的理解更容易.

现在,有一些人说,使用8个字符的缩进使得代码离右边很近,在80个字符宽度的终端屏幕上看程序很难受.回答是,但你的程序有3个以上的缩进的时候,你就应该修改你的程序.

总之,8个字符的缩进使得程序易读,还有一个附加的好处,就是它能在你将程序变得嵌套层数太多的时候给你警告.这个时候,你应该修改你的程序.

第二章:大符号的位置

另外一个C程序编程风格的问题是对大括号的处理.同缩进大小不同,几乎没有什么理由去选择一种而不选择另外一种风格,但有一种推荐的风格,它是Kernighan和Ritchie的经典的那本书带来的,它将开始
的大括号放在一行的最后,而将结束大括号放在一行的第一位,如下所示:

if (x is true) { we do y }

然而,还有一种特殊的情况:命名函数:开始的括号是放在下一行的第一位,如下:
int function(int x) { body of function }

所有非正统的人会非难这种不一致性,但是,所有思维正常的人明白: (第一) K&R是___对___的,(第二)如果K&R不对,请参见第一条. (:-))......另外,函数也是特殊的,不一定非得一致.

需要注意的是结束的括号在它所占的那一行是空的,__除了__它跟随着同一条语句的继续符号.如"while"在do-while循环中,或者"else"在if语句中.如下:

do { body of do-loop } while (condition);
以及
if (x == y) { .. } else if (x > y) { ... } else { .... }

理由: K&R.

另外,注意到这种大括号的放置方法减小了空行的数量,但却没有减少可读性.于是,在屏幕大小受到限制的时候,你就可以有更多的空行来写些注释了.

第三章:命名系统

C是一种简洁的语言,那么,命名也应该是简洁的.同MODULE-2以及ASCAL语言不同的是,C程序员不使用诸如ThisVariableIsATemporaryCounter之类的命名方式.一个C语言的程序员会将之命名为"tmp",这很容易书写,且并不是那么难以去理解.

然而,当混合类型的名字不得不出现的时候,描述性名字对全局变量来说是必要的了.调用一个名为"foo"全局的函数是很让人恼火的.全局变量(只有你必须使用的时候才使用它) ,就象全局函数一样,需要描述性的命名方式.假如你有一个函数用来计算活动用户的数量,你应该这样命名--"count_active_users()"--或另外的相近的形式,你不应命名为"cntusr()".

有一种称为Hungarian命名方式,它将函数的类型编码写入变量名中,这种方式是脑子有毛病的一种表现---编译器知道这个类型而且会去检查它,而这样只会迷惑程序员. --知道为什么Micro$oft为什么会生产这么多"臭虫"程序了把!!.

局部变量的命名应该短小精悍.假如你有一个随机的整数循环计数器,它有可能有"i",如果没有任何可能使得它能被误解的话,将其写作"loop_counter"是效率低下的.同样的,""tmp"可以是任何临时数值的函数变量.

如果你害怕混淆你的局部变量的名字,还有另外一个问题,就是称
function-growth-hormone-imbalancesyndrome.

第四章:函数

函数应该短小而迷人,而且它只作一件事情.它应只覆盖一到两个屏幕(80*24一屏),并且只作一件事情,而且将它做好.(这不就是UNIX的风格吗,译者注).

一个函数的最大长度和函数的复杂程度以及缩进大小成反比.于是,如果你已经写了简单但长度较长的的函数,而且你已经对不同的情况做了很多很小的事情,写一个更长一点的函数也是无所谓的.

然而,假如你要写一个很复杂的函数,而且你已经估计到假如一般人读这个函数,他可能都不知道这个函数在说些什么,这个时候,使用具有描述性名字的有帮助的函数.

另外一个需要考虑的是局部变量的数量.他们不应该超过5-10个,否则你有可能会出错.重新考虑这个函数,将他们分割成更小的函数.人的大脑通常可以很容易的记住7件不同的事情,超过这个数量会引起混乱.你知道你很聪明,但是你可能仍想去明白2周以前的做的事情.

第5章:注释

注释是一件很好的事情,但是过多的注释也是危险的,不要试图区解释你的代码是注释如何如何的好:你应该将代码写得更好,而不是花费大量的时间去解释那些糟糕的代码.

通常情况下,你的注释是说明你的代码做些什么,而不是怎么做的.而且,要试图避免将注释插在一个函数体里:假如这个函数确实很复杂,你需要在其中有部分的注释,你应该回到第四章看看.你可以写些简短的注释来注明或警告那些你认为特别聪明(或极其丑陋)的部分,但是你必须要避免过多.取而代之的是,将注释写在函数前,告诉别人它做些什么事情,和可能为什么要这样做.

第六章:你已经深陷其中了.

不要着急.你有可能已经被告之"GUN emacs"会自动的帮你处理C的源代码格式,而且你已经看到它确实如此,但是,缺省的情况下,它的作用还是不尽如人意(实际上,他们比随便敲出来的东西还要难看- ainfinite number of monkeys typing into GNU emacs would never make a good program)

于是,你可以要么不要使用GUN emacs,要么让它使用sanervalules.使用后者,你需要将如下的语句输入到你的.emacs文件中.(defun linux-c-mode() "C mode with adjusted defaults for use with the Linux kernel."(interactive) (c-mode) (c-set-style"K&R") (setq c-basic-offset8))

这会定义一个M-x Linux-c-mode的命令.当你hacking一个模块的时候,如何你将-*- linux-c -*-输入在最开始的两行,这个模式会自动起作用.而且,你也许想加入如下

(setq auto-mode-alist (cons '("/usr/src/linux.*/.*\\.〖ch〗$" . linux-c-mode) auto-mode-alist))

到你的.emacs文件中,这样的话,当你在/usr/src/linux下编辑文件的时候,它会自动切换到linux-c-mode .

但是,假如你还不能让emaces去自动处理文件的格式,不要紧张,你还有一样东西: "缩进" .

GNU的缩进格式也很死板,这就是你为什么需要加上几行命令选项.然而,这还不算太坏,因为GNU缩进格式的创造者也记得K&R的权威, (GNU没有罪,他们仅仅是在这件事情上错误的引导了人们) ,你要做的就只有输入选项"-kr -i8"(表示"K&R,缩进8个字符).

"缩进"有很多功能,特别是当它建议你重新格式你的代码的时候,你应该看看帮助.但要记住: "缩进"不是风格很差的程序的万灵丹.


排日程问题,某保密单位机要人员 A,B,C,D,E 每周需要工作5天,休息2天...
\/\/ 矩阵的行分别表示A,B,C,D,E的作息时间表。\/\/ 多个矩阵间用空行分隔开。\/\/ 例如,如下的矩阵就是一个合格的解。请编程输出所有解(多个解的前后顺序不重要)。\/\/ 0110111\/\/ 1101110\/\/ 0110111\/\/ 1101110\/\/ 1110110\/\/ 用C语言编写#include "stdlib.h"int getOnes( int ...

这次二级C语言考试用的是VC6.0吗?
是的 有模拟,就是今天吧..我有同学就今天模拟考试 祝你下周的考试能考好!!~~

最短路径 程序
从键盘输入图的邻接矩阵和一正整数m,计算结点两两之间长度为m的路的数目。考虑有向图和无向图。用C语言实现。三、实验步骤 1.根据算法画出程序流程图 2.根据流程图写源程序 3.编译连接源程序得出结果 四、源程序和实验结果 源程序:define n 5 include <stdio.h> void main(void){ int A[n...

c语言程序,求大神帮忙调通解答~采纳后悬赏加倍
printf("%d,%c,%d,%d,%d,%d,%d\\n",s[i].id,s[i].sex,s[i].eng,s[i].math,s[i].com,s[i].total);Bubble(s,3);for(i=0;i<3;i++)printf("%d,%c,%d,%d,%d,%d,%d\\n",s[i].id,s[i].sex,s[i].eng,s[i].math,s[i].com,s[i].total);return(0);} ...

C语言课程设计:计算机设备管理系统设计
唉,小伙,你给的分太低了大家都不愿答。再一个,这种东西虽然不难,但是东西太多了。给你个建议吧,你最好是自己学着做,定义一个结构体,里面包括计算机设备信息括编号、计算机名称、CPU型号、规格、基本配置、IP地址、MUC、厂家、硬盘序列号、管理人、到货日期、是否在用、金额等。然后,把这些个...

do是什么意思
C语言循环控制: 一般与while合用,语法格式是: do 语句块; while (循环继续的条件); 要注意,这里的while后面是有一个分号的,如果缺少了这个分号,则会导致错误。 先运行后判断条件,循环体至少会运行一次。当符合判断语句后继续循环,否则退出。Visual Basic中: 循环语句,与Loop连用 形如 do[while][until] loop[...

C和汇编= =!
单片机的话,现在也挺主推你用c语言。。但你还是得要了解汇编,不说你要会写,至少你要看得懂汇编写的程序。。就比如你说的反汇编。。因为反汇编是属于逆向,就是和软件开发相逆。。而机器是不可能把你的软件还原成你写软件的语言的源代码的。。所以只能根据程序的执行代码还原成对应的汇编指令。所...

谁有大一C语言考试题?快考试了,跪求题库··
C、函数 D、字符 3、请选出可用作C语言用户标识符的一组标识符___B___。A、void B、a3_b3 C、For D、2a define _123 -abc DO WORD IF ase sizeof 主要特点 C语言是一种结构化语言,它有着清晰的层次,可按照模块的方式对程序进行编写,十分有利于程序的调试,且c语言的处理和表现能力都...

计算机二级考试该如何选择?
2、C语言:Dos命令、计算机组成原理、多媒体、数据库操作、计算机网络、C语言程序设计、上机考试。3、Access:数据库系统、数据库和表、数据库查询窗体、报表、数据访问页、宏、模块等。4、C++:C++语言概述、C++语言数据类型、运算符和表达式、基本控制语句、数组、指针与引用、函数、类和对象继承、模板等...

校园课程设计与评价学习总结
此次课程设计给老师选择项目是在下用C语言开发一个摄像头驱动程序。项目的实施方式是团队分组合作,共同完成,让我们体验了一下公司开发项目的氛围。我们一人一机,老师边讲边练,还有企业项目经理的全程指导。虽说一些些技术我们在课堂上也曾学习过,但是大多停留在理论学习上,实际开发很少,而这次课程设计给了我们一个...

南岔区17171667089: 急!下周就要交了.望各位大神给帮帮忙``C语言的程序. -
休朱阿莫: 及格是>=60,还是60~69??这是我的代码:#include <stdio.h>#include <process.h>#include <conio.h>#include <string.h>void get_score(float * score);void put_score(float * score);void count_rank(float * score);void count_maxmin(float * score);...

南岔区17171667089: C语言课上老师布置的作业,大侠们会做得帮个忙吧,下个星期三上课交,只要个过程就好了 -
休朱阿莫: 编写一个程序,输入3个数,求3个数的和、积和平均值.#include void main(){ int i,j,k,sum,accumulate; ...

南岔区17171667089: 关于c语言的 -
休朱阿莫: #include <stdio.h>#include <string.h> int main (void) { char i[10]; //汉字占用2个字节以上,所以用字符串 scanf ("%s", i); // 读取输入的汉字 if (strcmp(i, "孙") == 0) //比较字符串 printf ("hahha"); else printf ("aaaa"); return 0; }

南岔区17171667089: c语言题目 帮我做一下 谢谢 没时间 明天要交 -
休朱阿莫: 第一题:#include "stdio.h" int main(void) { int number = 0; int result = 0; printf("Please input a number:"); scanf("%d",&number); if(number>0) { while(number>0) { result += number--; } printf("The Result is %d\n",result); } else { printf("...

南岔区17171667089: 有关c 语言的一些基础知识,谁能帮帮我?谢谢!!! -
休朱阿莫: 1、式子中有逗号运算符,其顺序是从左至度右,可以分写为 a = 12; a += a -= a *= a;后式又可以分解为 a = a + (a -= a *= a);再分 a = a + ( a = a - ( a *= a) );再分 a = a + ( a = a - ( a = a * a ) ) );从右依次计算 a = a + ( a = a - ( a = 12 * 12 ))); a = ...

南岔区17171667089: C语言 要交作业了求帮助 -
休朱阿莫: #include typedef struct vector{ int x; int y; int z;} Vector;int dot_product(Vector a, Vector b){ int ret; ret = a.x * b.x + a.y * b.y + a.z * b.z; ...

南岔区17171667089: C语言扫雷程序设计 求各位大神帮帮忙啊 作业下周就要交 c语言的扫雷程序 要求 不用鼠标 用键盘输入坐标值 不用图形函数 简单的就好
休朱阿莫: 松井大辅江湖私服的和

南岔区17171667089: 明天要交了,关于c语言的作业有些地方不懂,求帮助 -
休朱阿莫: 在类似下面这两行的地方,加'\t'来对齐,不要用空格对齐.printf(" 学号\t\t姓名\t高数\t英语\t物理\t平均分\n"); printf(" %-4d\t\t%-10s\t%-2d\t%-2d\t%-2d\t%-7.2f \n",

南岔区17171667089: 急求编程代码:晚上10点要交一个C语言的作业,高手帮帮忙
休朱阿莫: #include<stdio.h> main() { int i,j,a[4][4],max[4]; for(i=0;i<4;i++) for(j=0;j<4;j++) scanf("%d",&a[i][j]); for(j=0;j<4;j++) max[j]=a[0][j]; printf("矩阵输出:\n"); for(i=0;i<4;i++) {for(j=0;j<4;j++) printf("%4d",a[i][j]); printf("\n"); } for(j=0;j<4;j++) for(i=0;...

南岔区17171667089: 跪求大神帮忙,几个c语言程序答案,在几天内就要交了,感激不尽啊!!! -
休朱阿莫: double average(double *a, int n);{ double sum,*pt=a; sum=0.0; for(int i=0;i<n;i++)sum+=*pt++; return sum;}mian(){ int num; double *a; printf("输入数组元素的个数:"); scanf("%d",&num);a=(double *)malloc(num); input(a); printf(a); printf("数组所有数的平均值为:%f.",average(a,num)); free(a); return 0;}

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网