① c语言,数组。用键盘输入n个学生的姓名,并按字典顺序排序输出,n值由键盘输入。
#include <stdio.h>
#include<string.h>
int main ()
{int n,i,j;
char s[100][20],t[20];
scanf("%d",&n);
for(i=0;i<n;i++)
scanf("%s",s[i]);
for(i=0;i<n-1;i++)
for(j=0;j<n-1-i;j++)
if(strcmp(s[j],s[j+1])>0)
{strcpy(t,s[j]);
strcpy(s[j],s[j+1]);
strcpy(s[j+1],t);
}
printf(" After: ");
for(i=0;i<n;i++)
puts(s[i]);
return 0;
}
② c语言 设有N个学生,M门课程的成绩, 子函数使用数组指针作为参数
#include <stdio.h>
#include <stdlib.h>
#include <memory.h>
/*代码遵循C89标准*/
typedef struct
{
double c1; /*第一门课成绩*/
double c2; /*第二门课成绩*/
double c3; /*第三门课成绩*/
double avg;/*该学生平均成绩*/
}Score;
void avgStudentScore(Score* pScore, int n, Score *avgCourse)
{
int i;
/*将返回值重置为0*/
memset(avgCourse, 0, sizeof(Score));
/*计算平均值*/
for(i = 0; i < n; i++){
/*计算各门课成绩总和*/
avgCourse->c1 += pScore[i].c1;
avgCourse->c2 += pScore[i].c2;
avgCourse->c3 += pScore[i].c3;
/*计算该学生平均世拿渗成绩*/
pScore[i].avg = (pScore[i].c1 + pScore[i].c2 + pScore[i].c3)/3;
}
/*计算各门课平均成绩*/
avgCourse->c1 /= n;
avgCourse->c2 /= n;
avgCourse->c3 /= n;
}
int main()
{
int studentNum = 0, i;
Score* studentScore, avgScore;
/*输入学生人数*/
while(studentNum < 1){
printf("输入学生人数:");
scanf("%d", &studentNum);
if(studentNum < 1){
printf("学生人数不能小于1个,重新输入\搜脊n");
}
}
printf("\n");
/*申请内存空间*/
studentScore = (Score*)malloc(sizeof(Score) * studentNum);
/*输入学生成绩*/
i = 0;
while(i < studentNum){
printf("请输入第%d位学生的3门成绩敏乱:", i+1);
scanf("%lf %lf %lf", &studentScore[i].c1, &studentScore[i].c2, &studentScore[i].c3);
printf("\n");
i++;
}
/*计算各门课平均成绩*/
avgStudentScore(studentScore, studentNum, &avgScore);
/*输出结果*/
printf("3门课的平均成绩分别为: %.2f %.2f %.2f\n", avgScore.c1, avgScore.c2, avgScore.c3);
printf("%d位学生的平均成绩分别为:\n", studentNum);
for(i = 0; i < studentNum; i++){
printf("%.2f ", studentScore[i].avg);
}
/*释放内存*/
free(studentScore);
getchar();
getchar();
return 0;
}
③ C语言 设有N个学生,M门课程的成绩用动态分配指针的方法分别求平均值
#include<stdio.h>
#include<stdlib.h>
#defineN3//学生数量
#defineM5//几门成绩
//储存学生信息的结构体
typedefstructstudent
{
intscore[M];//各科成绩
intavg;//平均分
}STUDENT_T;
intmain(intargc,char*argv[])
{
inti=0;
intj=0;
STUDENT_T*p液枝=NULL;
STUDENT_T*tmp=NULL;
//指针指向动态申请的内存
p=malloc(sizeof(STUDENT_T)*N);
if(!p)
{
printf(" ");
return-1;
}
//屏幕输入或变量直吵盯接赋值每个学生的各科成绩并计算平均分
tmp=p;
for(i=0;i<N;i++,tmp++)
{
printf("输入第%d个学生的%d个成绩: ",i+1,M);
for(j=0;j<M;j++)
{
scanf("%d",&tmp->score[j]);
//tmp->score[j]=60+2*i+2*j;
tmp->avg+=tmp->score[j];
}
tmp->avg/=M;
}
//打印各学生的升埋和平均分
tmp=p;
for(i=0;i<N;i++,tmp++)
{
printf("学生:%d平均分:%d ",i+1,tmp->avg);
}
free(p);
return0;
}
④ 有N个学生,每人考M门课,求出每个同学的平均成绩和每门课的平均成绩。用c语言
学生人数和学科数自行修改常量N和M,我测试4个学生3门课。
成绩我用的是整数,你要是想精确的小数,把相关变量都改成浮点数就可以了。
#include <stdio.h>
#define N 4//学生人数
#define M 3//课目数
int *getSAve(int score[][M]);//每个学生平均成绩
int *getCAve(int score[][M]);//每门课的平均成绩
int main()
{
int i,j,score[N][M],*ave=NULL;//局部变量
for(i=0;i<N;i++)
{
printf("分别输入第%d个学生的%d门课成绩:",i+1,M);
for(j=0;j<M;j++)
scanf("%d",&score[i][j]);
}
ave=getSAve(score);
for(i=0;i<N;i++)
printf("学生%d的平均分为%d ",i+1,ave[i]);
ave=getCAve(score);
for(i=0;i<M;i++)
printf("第%d门课的平均分为%d ",i+1,ave[i]);
return 0;
}
int *getCAve(int score[][M])
{
int i,j,sum;
static int ave[M];
for(i=0;i<M;i++)
{
sum=0;
for(j=0;j<N;j++)
sum+=score[j][i];
ave[i]=sum/N;
}
return ave;
}
int *getSAve(int score[][M])
{
int i,j,sum;
肢晌 static int ave[N];
for(i=0;i<N;i++)
{
sum=0;
御答 for(j=0;j<M;j++)
历拆锋 sum=sum+score[i][j];
ave[i]=sum/M;
}
return ave;
}
⑤ C语言。输入n个学生的姓名,语文,数学,英语成绩,
#include <stdio.h>
float average;
}stu[N],temp;
void main()
printf("请依次输入%d个学生的姓名、语文成绩、数学成绩、英语成绩: ",N);
scanf("%s%d%d%d",&stu[i].name,&stu[i].yuwen,&stu[i].shuxue,&stu[i].yingyu);
stu[i].average=(stu[i].yuwen+stu[i].shuxue+stu[i].yingyu)/3.0;
printf(" 姓名 语文 数学 英语 平均分 ");
for(i=0;i<N;i++)
简介
C语言是一门面向过程的计算机编程语言,与C++、C#、Java等面向对象编程语言有所不同。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、仅产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。C语言描述问题比汇编语言迅速、工作量小、可读性好、易于调试、修改和移植,而代码质量与汇编语言相当。