
#include<stdioh>
struct student
{
int num;//学号
char name[10];//姓名
int score[3];//3门成绩
float average;//平均分
};
void enter(struct student s[],int n);//输入学生信息
void sort(struct student s[],int n);//平均分排序
void print(struct student s[],int n);//显示排名
int main()
{
int n;//班级学生人数
struct student stu[70];//n<70
printf("输入班级学生人数n :");
scanf("%d",&n);
enter(stu,n);
sort(stu,n);
print(stu,n);
return 0;
}
void enter(struct student s[],int n)
{
int i,j,sum=0;
printf("请输入 %d 个学生信息:",n);
for(i=0;i<n;i++)
{
printf("请输入第 %d 个学生的 学号 姓名 :",i+1);
scanf("%d %s",&s[i]num,&s[i]name);
printf("请输入第 %d 个学生的3门成绩 :",i+1);
sum=0;
for(j=0;j<3;j++)
{
scanf("%d",&s[i]score[j]);
sum=sum+s[i]score[j];
}
s[i]average=sum/30;
}
}
void sort(struct student s[],int n)
{
int i,j,p;
struct student temp;
for(i=0;i<n-1;i++)
{
p=i;
for(j=i+1;j<n;j++)
if(s[j]average>s[p]average)
p=j;
if(p!=i)
{
temp=s[i];
s[i]=s[p];
s[p]=temp;
}
}
}
void print(struct student s[],int n)
{
int i,j,m=1;//m代表名次
printf("\n 名次表:\n");
printf("学号\t姓名\t科目1\t科目2\t科目3\t平均分\t名次\n");
for(i=0;i<n;i++)
{
printf("%d\t%s\t",s[i]num,s[i]name);
for(j=0;j<3;j++)
printf("%d\t",s[i]score[j]);
printf("%42f\t %d\n",s[i]average,m++);
}
}
#include <stdioh>
void main()
{
int a,b, pt, pa= &a, pb= &b;
//----------指针相互交换地址-------------
scanf("%d %d",&a,&b);
pt= pa;
pa= pb;
pb= pt;
printf("\n%d,%d\n",pa, pb);
//----------指针相互交换内容-------------
int t;
pt= &t;
pa= &a;
pb= &b;
scanf("%d %d",&a,&b);
pt= pa;
pa= pb;
pb= pt;
printf("\n%d,%d\n",pa, pb);
}
#include "stdioh"
#include "mathh"
/求一元二次方程axx+bx+c=0的解/
main()
{
float a,b,c,x1,x2,d;
printf("请输入a:");
scanf("%f",&a);
printf("请输入b:");
scanf("%f",&b);
printf("请输入c:");
scanf("%f",&c);
d=bb-4ac;
if(d < 0)
printf("方程没有实数解。\n");
if (d==0)
{
x1=(-b)/(2a);
printf("x1=%f\n",x1);
}
if (d>0)
{
x1=(-b+sqrt(d))/(2a);
x2=(-b-sqrt(d))/(2a);
printf("x1=%f,x2=%f\n",x1,x2);}
}
请输入a:12
请输入b:34
请输入c:4
x1=-0122985,x2=-2710348
Press any key to continue
(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)的,把程序的编辑、编译、连接和运行等 *** 作全部集中在一个界面上进行,功能丰富,使用方便,直观易用。
vc里面建立一个控制台程序,代码如下:
#include<stdioh>
#include<stringh>
int
main()
{
int
len;
printf("请输入正方形的边长:");
while(scanf("%n",&len)){
printf("正方形的边长为:%d\n",len);
printf("正方形的表面积为:%d\n",lenlen);
printf("正方形的体积为:%d\n",lenlenlen);
printf("\n请输入正方形的边长:");
}
}
这段代码是计算正方形表面积和体积的,直接用记事本编写的,没有编译过,不知道有没错误,有错误你自己稍微修改下,大致是这样,我手头上没有vc,就不编译了
#include <stdioh>
int main()
{
int a=1,b=2,c=3,t;
t=a;
a=b;
b=t;
t=b;
b=c;
c=t;
printf("a=%d,b=%d,c=%d\n",a,b,c);
return 0;
}
#include <stdioh>
int main()
{
int a=1234,t;
for(t=0;a;a/=10)
t=t10+a%10;
printf("%d\n",t);
return 0;
}
#include <stdioh>
int main()
{
putchar('M');
return 0;
}
以上就是关于用C语言编写程序:全部的内容,包括:用C语言编写程序:、用C语言编写程序、如何用C语言程序解方程等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)