① 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語言描述問題比匯編語言迅速、工作量小、可讀性好、易於調試、修改和移植,而代碼質量與匯編語言相當。