用C语言编写一个程序

用C语言编写一个程序,第1张

#include <stdioh>

#include <stdlibh>

/

主函数main中输入一组(10个)C语言成绩值到数组score[ ]中,

并输出如图所示的主菜单,根据不同的选择调用相应函数,编

写函数分别实现:

1- 输出平均值

2- 排序成绩

3- 输出比平均值低的成绩和个数

4- 输出及格率

5- 查找成绩

6- 添加成绩

0- 结束程序

/

//1、平均成绩函数

double AveScores(double [], double);

double AveScores(double score[], double count)

{

int i;

double sums = 0;

double average;

for(i = 0; i < count; i++)

{

sums += score[i];

}

average = sums / count;

return average;

}

//排序成绩函数由小到大

void SortScores(double [], int);

void SortScores(double score[], int count)

{

int i, j;

double temp;

for(i = 0; i < count; i++)

{

for(j = 0; j < count - i - 1; j++)

{

if(score[j] > score[j + 1])

{

temp = score[j + 1];

score[j + 1] = score[j];

score[j] = temp;

}

}

}

}

//输出比平均值低的成绩个数

double LowAve (double [], int, double);

double LowAve (double score[], int count, double average)

{

int i= 0;

double countlow = 0;

for(i = 0; i < count; i++)

{

if(score[i] < average)

{

countlow++;

}

}

return countlow;

}

//查找成绩

void FindScore(double [], int);

void FindScore(double score[], int count)

{

int i;

int index;

double input;

printf("请输入要查找的成绩");

scanf("%lf", &input);

for(i = 0; i < count; i++)

{

if(score[i] == input)

{

printf("找到了!此成绩在第%d个\n",i);

}

}

}

//添加成绩

int AddScore(double [], int);

int AddScore(double score[], int count)

{

int i = 0;

printf("请用户输入要添加的成绩:");

while(scanf("%lf", &score[i + count]) != 1 || &score[i + count] < 0)

{

fflush(stdin);

printf("请重新输入正数:");

}

count++;

return count;

}

int main()

{

int i, j;

int index; //数组元素下标

int choice; //用户选择

double average; //平均成绩

double temp; //临时变量

int count = 10; //成绩个数最多支持100个

double countlow; //低于平均成绩的个数

double score[100] = {76, 68, 98, 87, 71, 65, 49, 54, 80, 61};

double lowScore[100]; //用来存放低于平均成绩的数组

do

{

printf("\n");

printf("1、输出平均值\n");

printf("2、排序成绩\n");

printf("3、输出比平均值低的成绩和个数\n");

printf("4、输出及格率\n");

printf("5、查找成绩\n");

printf("6、添加成绩\n");

printf("0、结束程序\n");

printf("\n");

printf("请选择功能:");

while(scanf("%d", &choice) != 1 || choice < 0 || choice > 6)

{

fflush(stdin);

printf("请重新输入0-6的数字:");

}

switch(choice)

{

case 1://1- 输出平均值

average = AveScores(score,count);

printf("平均成绩为%2lf\n", average);

break;

case 2://2- 排序成绩

SortScores(score,count);

printf("排序后成绩为:\n");

for(i = 0; i < count; i++)

{

printf("第%d个成绩:\t",i + 1);

printf("%2lf\n",score[i]);

}

break;

case 3://3- 输出比平均值低的成绩和个数

for(i = 0; i < count; i++)

{

lowScore[i] = score[i];

}

SortScores(lowScore,count);

average = AveScores(score, count);

countlow = LowAve(lowScore,count,average);

printf("低于平均成绩的个数为%0lf\n", countlow);

for(i = 0; i < countlow; i++)

{

printf("第%d个低于平均的成绩:\t",i + 1);

printf("%2lf\n",lowScore[i]);

}

break;

case 4://4- 输出及格率

average = AveScores(score, count);

countlow = LowAve(score,count,average);

printf("及格率为:%2lf%%%\n",100 - countlow / count 100);

break;

case 5://5- 查找成绩

FindScore(score,count);

break;

case 6://6- 添加成绩

count = AddScore(score,count);

break;

}

}while(choice != 0);

return 0;

}

(1)上机输入和编辑源程序。通过键盘向计算机输入程序,如发现有错误,要及时改正。最后将此源程序以文件形式存放在自己指定的文件夹内(如果不特别指定,一般存放在用户当前目录下),文件用c作为后缀,生成源程序文件,如fc。

(2)对源程序进行编译,先用C编译系统提供的“预处理器”(又称“预处理程序”或“预编译器”)对程序中的预处理指令进行编译预处理。例如,对于#include<stdioh>指令来说,就是将stdioh头文件的内容读进来,取代#include<stdioh>行。由预处理得到的信息与程序其他部分一起组成一个完整的、可以用来进行正式编译的源程序,然后由编译系统对该源程序进行编译。

编译的作用首先是对源程序进行检查,判定它有无语法方面的错误,如有,则发出“出错信息”,告诉编程人员认真检查改正。修改程序后重新进行编译,如果还有错,再发出“出错信息”。如此反复进行,直到没有语法错误为止。这时,编译程序自动把源程序转换为二进制形式的目标程序(在Visual C++中后缀为obj,如fobj)。如果不特别指定,此目标程序一般也存放在用户当前目录下,此时源文件没有消失。

在用编译系统对源程序进行编译时,自动包括了预编译和正式编译两个阶段,一气呵成。用户不必分别发出二次指令。

(3)进行连接处理。经过编译所得到的二进制目标文件(后缀为obj)还不能供计算机直接执行。前面已说明:一个程序可能包含若干个源程序文件,而编译是以源程序文件为对象的,一次编译只能得到与一个源程序文件相对应的目标文件(也称目标模块),它只是整个程序的一部分。必须把所有的编译后得到的目标模块连接装配起来,再与函数库相连接成一个整体,生成一个可供计算机执行的目标程序,称为可执行程序(executive program),在Visual C++中其后缀为exe,如fexe。

即使一个程序只包含一个源程序文件,编译后得到的目标程序也不能直接运行,也要经过连接阶段,因为要与函数库进行连接,才能生成可执行程序。

以上连接的工作是由一个称为“连接编辑程序”(linkage editor)的软件来实现的。

(4)运行可执行程序,得到运行结果。

以上过程如图12所示。其中实线表示 *** 作流程,虚线表示文件的输入输出。例如,编辑后得到一个源程序文件fc,然后在进行编译时再将源程序文件fc输入,经过编译源程序,找出问题,修改源程序,并重新编译,直到无错为止。有时编译过程未发现错误,能生成可执行程序,但是运行的结果不正确。一般情况下,这不是语法方面的错误,而可能是程序逻辑方面的错误,例如计算公式不正确、赋值不正确等,应当返回检查源程序,并改正错误。

为了编译、连接和运行C程序,必须要有相应的编译系统。目前使用的很多C编译系统都是集成开发环境(IDE)的,把程序的编辑、编译、连接和运行等 *** 作全部集中在一个界面上进行,功能丰富,使用方便,直观易用。

输入2个正整数m和n,求其最大公约数和最小公倍数

#include

#include

int main()

int m,n,p,q,s,r;

printf("请输入两个正整数;m,n\n");

scanf("%d,%d",&m,&n);

#include<stdioh>

main()

int a,b,t=0;

scanf("%d %d",&a,&b);

if (a<b)

printf("%d %d %d %d %d",(a+b),(a-b),(a/b),(ab),(a%b));

}

主要特点

C语言是一种结构化语言,它有着清晰的层次,可按照模块的方式对程序进行编写,十分有利于程序的调试,且c语言的处理和表现能力都非常的强大,依靠非常全面的运算符和多样的数据类型,可以轻易完成各种数据结构的构建,通过指针类型更可对内存直接寻址以及对硬件进行直接 *** 作,因此既能够用于开发系统程序,也可用于开发应用软件。

百度百科-c语言

#include <stdioh>

int main() {

int n, c = 0, num = 0;

do {

  printf("请输入一个二位数n(80<=n<=99): ");

  scanf("%d", &n);

}while (n < 80 || n > 99);

int a[100];

for (int i = 1; i <= n; i++)

  a[i] = 1;

while (c < n - 1) {

  for (int i = 1; i <= n; i++) {

    if (a[i] == 1)

      num++;

    if (num == 3) {

      a[i] = 0;

      c++;

      num = 0;

    }

  }

}

for (int i = 1; i <= n; i++)

  if (a[i] == 1)

    printf("最初是%d号\n", i);

return 0;

}

数学方法

#include <stdioh>

int main() {

int n, c = 0;

do {

  printf("请输入一个二位数n(80<=n<=99): ");

  scanf("%d", &n);

}while (n < 0 || n > 99);

for (int i = 2; i <= n; i++)

  c = (c + 3) % i;

printf("最初是%d号\n", c + 1);

return 0;

}

以上就是关于用C语言编写一个程序全部的内容,包括:用C语言编写一个程序、[C语言] 运行C程序的步骤、求简单C语言程序代码!等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10164887.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存