关于#c语言#的问题:这段主函数代码是什么意思,在codeblocks里面该怎么运行

这段主函数代码是什么意思,在codeblocks里面该怎么运行

int main(int argc, char **argv)
{
    if (argc != 4)
    {
        printf("Usage: ./kmeans <input_filename> <num_clusters> <output_filename>\n");
        return 1;
    }

}

就是调用程序是如果主函数传参数量不为3的时候输出下面的内容(第一个参数是程序名,所以参数数量4-1=3)

  • 你可以参考下这个问题的回答, 看看是否对你有帮助, 链接: https://ask.csdn.net/questions/7739514
  • 我还给你找了一篇非常好的博客,你可以看看是否有帮助,链接:关于codeblocks无法编译c程序问题
  • 除此之外, 这篇博客: 学生成绩管理系统中的 学生成绩管理系统源代码,直接复制到codeblocks就可以运行 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • 
    备注:因加了功能,且为了普适性和重复利用函数,代码有900行
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    #define N 30
    typedef struct date
    {
        int year;
        int month;
        int day;
    }DATE;
    typedef struct student
    {
        long studentID;
        char studentNAME[10];
        char studentSEX;
        DATE birthday;
        float aver;
        float zongfen;
        int mingci;
        float score[6];
    }STUDENT;
    void menu();
    void Inputscore(STUDENT stu[],int n,int m);
    void Averscore(STUDENT stu[],float sum[],int n,int m);
    void Printscore(STUDENT stu[],int n,int m);
    void Averscoree(STUDENT stu[],float averr[],float  summ[],int n,int m);
    void printscoree(STUDENT stu[],float averr[],float summ[],int n,int m);
    void sorthightolowsum(STUDENT stu[],int n,int m);
    void sortlowtohighsum(STUDENT stu[],int n,int m);
    void sorthightolowdouble(STUDENT stu[],int n,int m,int q);
    void sortlowtohighdouble(STUDENT stu[],int n,int m,int q);
    void sorthightolowsingle(STUDENT stu[],int n,int m,int q);
    void sortlowtohighsingle(STUDENT stu[],int n,int m,int q);
    void sortstudentIDlowtohigh(STUDENT stu[],int n,int m);
    void sortstudentnamelowtohigh(STUDENT stu[],int n,int m);
    void findstudent(const STUDENT stu[],int n,int m,long w);
    void findstudentt(const STUDENT stu[],int n,int m,char str[]);
    void readfromfile(STUDENT stu[],int *n,int *m);
    void printscore(STUDENT stu[],int n,int m);
    void writetofile(STUDENT stu[],int n,int m);
    void youxiubaifenbi(STUDENT stu[],int n,int m);
    void printfquanbu(STUDENT stu[],int n,int m);
    void ssorthightolowsum(STUDENT stu[],int n,int m);
    void changexinxi(STUDENT stu[],int n,int m,int w);
    void sorthightolowsumm(STUDENT stu[],int n,int m);
    void zengjiaxuesheng(STUDENT stu[],float sum[],int n,int m,int xuesheng);
    int main()
    {
        char arr[]="shuai";char arrr[]="bushuai";char answer[10];
        int i=0,p=1;
        for(i=0;i<3;i++)
        {
            if(i==2)
            {
                printf("对不起!\n");
                return 0;
            }
        printf("这是宋辰轩编写的程序,在使用之前\n");
        printf("请你回答一个问题,你认为编者帅不帅?请输入:shuai or bushuai\n");
        scanf("%s",answer);
        if(strcmp(answer,arr)==0)
        {
            printf("您的判断十分正确!\n");
            break;
        }
        else
        {
            if(strcmp(answer,arrr)==0){
            printf("判断错误,请您深思熟虑后继续输入该问题的答案\n");
            printf("您还有最后%d次机会\n",p);}
            if(strcmp(answer,arrr)!=0)
            {
                printf("请按正确格式输入问题的答案\n");
                printf("您还有最后%d次机会\n",p);
            }
            p--;
        }
        }//我的登陆程序;
        printf("**************************************\n");
        printf("欢迎使用该程序,请完成程序初始化\n");
        printf("**************************************\n");
         //float aver[N];//平均分(学生)
        float averr[N];//平均分(课程)
        float  sum[N];// 总分(学生)
        float  summ[N];//总分(课程)
        int q=0;//(第几门课排序)
        int y=0,e=0;//换学生的数据
        int xuesheng=0;
        long w;//找人的学号
        //char ch;//(升序还是降序)
        char str1[50],str2[50];
        STUDENT stu[N],stu2;
        int n,m;
        m=3;
        while(1)
        {
        int choice;//用户选择变量
        menu();
        printf("Please enter your choice\n");
        scanf("%d",&choice);
        if(choice==0)
        {
            printf("**************************************\n");
            printf("谢谢使用!\n");
            printf("**************************************\n");
    
            return 0;
        }
        switch(choice)
        {
        case 1:{
            printf("**************************************\n");
            printf("有几个学生?\n");
            scanf("%d",&n);
            Inputscore(stu,n,m);
            break;
        }
        case 2:
            {
                 Averscoree(stu,averr,summ,n,m);//算出课程的总分和平均分
                 printscoree(stu,averr,summ,n,m);
                 break;
            }
        case 3:
            {
                Averscore(stu,sum,n,m);//算出学生的总分和平均分;
                Printscore(stu,n,m);
                break;
            }
        case 4:
            {
                Averscore(stu,sum,n,m);//算出学生的总分和平均分;
                sorthightolowsum(stu,n,m);//总成绩从大到小的学生排序并且输出
                break;
            }
        case 5:
            {
                Averscore(stu,sum,n,m);//算出学生的总分和平均分;
                sortlowtohighsum(stu,n,m);//总成绩从小到大的学生排序并且输出
                break;
            }
        case 6:
            {
                Averscore(stu,sum,n,m);//算出学生的总分和平均分;
                sortstudentIDlowtohigh(stu,n,m);//按照学号排序
                break;
            }
        case 7:
            {
                Averscore(stu,sum,n,m);//算出学生的总分和平均分;
                sortstudentnamelowtohigh(stu,n,m);//按照姓名字典排序
                break;
            }
        case 8:
            {
                scanf("%ld",&w);
                sorthightolowsum(stu,n,m);//排名
                findstudent(stu,n,m,w);//找人(学号)
                break;
            }
        case 9:
            {
                scanf("%s",str1);
                sorthightolowsum(stu,n,m);//排名
                findstudentt(stu,n,m,str1);//找人(名字)
                break;
            }
        case 10:
            {
                youxiubaifenbi(stu,n,m);//优秀百分比;
                break;
            }
        case 11:
            {
                Averscore(stu,sum,n,m);//算出学生的总分和平均分;
                sorthightolowsum(stu,n,m);//排名
                printfquanbu(stu,n,m);//输出全部信息;
                break;
            }
        case 12:
            {
                Averscore(stu,sum,n,m);//算出总分和平均分
                ssorthightolowsum(stu,n,m);//排序(按照总分)
                writetofile(stu,n,m);//写入文件;
                break;
            }
        case 13:
            {
                readfromfile(stu,&n,&m);//读取文件;
                Averscore(stu,sum,n,m);//算出总分和平均分
                printscore(stu,n,m);//打印;
                break;
            }
        case 14:
            {
                printf("请输入升序降序\n");
                scanf("%s",str2);
                if(strcmp(str2,"降序")==0){
                    printf("请输入要降序的科目(1、2、3)\n");
                    scanf("%d",&q);
                    sorthightolowdouble(stu,n,m,q);//从高到低排序(单科)
                }
                else {
                    printf("请输入要升序的科目(1、2、3)\n");
                    scanf("%d",&q);
                    sortlowtohighdouble(stu,n,m,q);//从低到高排序(单科)
                }
                break;
    
            }
        case 15:
            {
                int j;
                printf("**************************************\n");
                printf("根据输出的学生选择改哪名学生(以1开始)\n");
                Averscore(stu,sum,n,m);//算出学生的总分和平均分;
                sorthightolowsumm(stu,n,m);//排名
                printfquanbu(stu,n,m);//输出全部信息;
                scanf("%d",&y);
                printf("学生为:\n");
                printf("%2d",stu[y-1].mingci);
            printf("%10ld%8s%3c%8d/%02d/%02d",stu[y-1].studentID,
                                              stu[y-1].studentNAME,
                                              stu[y-1].studentSEX,
                                              stu[y-1].birthday.year,
                                              stu[y-1].birthday.month,
                                              stu[y-1].birthday.day);
        printf("   ");
        for(j=0;j<m;j++)
        {
            printf("%5.1f",stu[y-1].score[j]);
        }
        printf("%7.1f",stu[y-1].zongfen);
        printf("%6.1f\n",stu[y-1].aver);
                printf("请输入要改的信息:1代表序号、2名字、3性别 、4生日(年月日)、5课程分数(3门)、6总分、7平均分\n");
                printf("请在1-7中作出选择,若不选,则输入8\n");
                scanf("%d",&e);
                if(e==1)
                {
                    scanf("%ld",&stu2.studentID);
                    stu[y-1].studentID=stu2.studentID;
                }
                else if(e==2)
                {
                    scanf("%s",stu2.studentNAME);
                    strcpy(stu[y-1].studentNAME,stu2.studentNAME);
                }
                else if(e==3)
                {
                    scanf(" %c",&stu2.studentSEX);
                    stu[y-1].studentSEX=stu2.studentSEX;
                }
                else if(e==4)
                {
                    printf("请输入年月日(例如2000 06 15)\n");
                    scanf("%d",&stu2.birthday.year);
                    scanf("%d",&stu2.birthday.month);
                    scanf("%d",&stu2.birthday.day);
                    stu[y-1].birthday.year=stu2.birthday.year;
                    stu[y-1].birthday.month=stu2.birthday.month;
                    stu[y-1].birthday.day=stu2.birthday.day;
                }
                else if(e==5)
                {
                    int r=0;
                    printf("要改第几门?\n");
                    scanf("%d",&r);
                    scanf("%f",&stu2.score[r]);
                    stu[y-1].score[r]=stu2.score[r];
                }
                else if(e==6)
                {
                   scanf("%f",&stu2.zongfen);
                   stu[y-1].zongfen=stu2.zongfen;
                }
                else if(e==7)
                {
                    scanf("%f",&stu2.aver);
                    stu[y-1].aver=stu2.aver;
                }
                else if(e==8)
                {
                    break;
                }
                else
                {
                    printf("Wrong!\n");
                    exit(0);
                }
                printf("Change successfully\n");
                printfquanbu(stu,n,m);//输出全部信息;
                printf("若要保存,请按12生成文档\n");
                printf("**************************************\n");
                break;
            }
        case 16:
            {
                printf("请输入增加学生的数量:\n");
                scanf("%d",&xuesheng);
                zengjiaxuesheng(stu,sum,n,m,xuesheng);
            }
        }
        }
        return 0;
    }
    void Inputscore(STUDENT stu[],int n,int m)//输入学生数据
    {
        int i,j;
        for(i=0;i<n;i++)
        {
            printf("请输入第%d个学生的信息\n",i+1);
            printf("按照学号、姓名、性别(M/F)、生日(例如2000 06 15)、%d科成绩输入\n",m);
            scanf("%ld",&stu[i].studentID);
            scanf("%s",stu[i].studentNAME);
            scanf(" %c",&stu[i].studentSEX);
            scanf("%d",&stu[i].birthday.year);
            scanf("%d",&stu[i].birthday.month);
            scanf("%d",&stu[i].birthday.day);
            for(j=0;j<m;j++)
            {
                scanf("%f",&stu[i].score[j]);
            }
        }
        printf("\n");
    }
    void Averscore(STUDENT stu[],float sum[],int n,int m)//计算n个学生的m门课程平均分,存入stu[i].aver
    {
        int i,j,sumx[N];
        for(i=0;i<n;i++)
        {
            sumx[i]=0;
            for(j=0;j<m;j++)
            {
                sumx[i]=sumx[i]+stu[i].score[j];
            }
            sum[i]=sumx[i];
            stu[i].aver=(float)sum[i]/m;
            stu[i].zongfen=sum[i];
        }
    }
    void Printscore(STUDENT stu[],int n,int m)//输出学生数据并且输出学生的平均分
    {
        int i,j;
        printf("**************************************\n");
        printf("The results are:\n");
        for(i=0;i<n;i++)
        {
            printf("%10ld%8s%3c%6d/%02d/%02d",stu[i].studentID,
                                              stu[i].studentNAME,
                                              stu[i].studentSEX,
                                              stu[i].birthday.year,
                                              stu[i].birthday.month,
                                              stu[i].birthday.day);
        for(j=0;j<m;j++)
        {
            printf("%5.1f",stu[i].score[j]);
        }
        printf("\n");
        printf("该学生的总分为:%6.1f\n",stu[i].zongfen);
        printf("该学生的平均分为:%6.1f\n",stu[i].aver);
        }
        printf("\n");
        printf("**************************************\n");
    }
    void Averscoree(STUDENT stu[],float averr[],float  summ[],int n,int m)//课程的总分和平均分的计算
    {
        int i,j,sumxx[N];
        for(i=0;i<m;i++)
        {
            sumxx[i]=0;
            for(j=0;j<n;j++)
            {
                sumxx[i]=sumxx[i]+stu[j].score[i];
            }
            summ[i]=sumxx[i];
            averr[i]=(float)summ[i]/n;
        }
    }
    void printscoree(STUDENT stu[],float averr[],float summ[],int n,int m)//输出课程的总分和平均分
    {
        printf("**************************************\n");
        int i;
        for(i=0;i<m;i++)
        {
            printf("第%d门课的情况如下:\n",i+1);
            printf("课程总分为:%6.1f    课程平均分为:%6.1f\n",summ[i],averr[i]);
        }
        printf("\n");
        printf("**************************************\n");
    }
    void sorthightolowsum(STUDENT stu[],int n,int m)//按照总成绩对学生进行降序排序并且输出
    {
         STUDENT stuu1;
         int i,j;
         for(i=0;i<n-1;i++)
         {
             for(j=i+1;j<n;j++)
             {
                if(stu[i].zongfen<stu[j].zongfen)
                {
                     stuu1=stu[i];
                     stu[i]=stu[j];
                     stu[j]=stuu1;
                }
             }
         }
         printf("**************************************\n");
         printf("降序的成绩\n");
         for(i=0;i<n;i++)
         {
             printf("第%d名:",i+1);
             stu[i].mingci=i+1;
             printf("%10ld%8s%3c%6d/%02d/%02d",stu[i].studentID,
                                              stu[i].studentNAME,
                                              stu[i].studentSEX,
                                              stu[i].birthday.year,
                                              stu[i].birthday.month,
                                              stu[i].birthday.day);
             printf("%6.1f\n",stu[i].zongfen);
         }
         printf("\n");
         printf("**************************************\n");
    }
    void sortlowtohighsum(STUDENT stu[],int n,int m)//按照总成绩对学生进行升序排序并且输出
    {
         STUDENT stuu1;
         int i,j;
         for(i=0;i<n-1;i++)
         {
             for(j=i+1;j<n;j++)
             {
                if(stu[i].zongfen>stu[j].zongfen)
                {
                     stuu1=stu[i];
                     stu[i]=stu[j];
                     stu[j]=stuu1;
                }
             }
         }
         printf("**************************************\n");
         printf("升序的成绩\n");
         for(i=0;i<n;i++)
         {
              printf("倒数第%d名:",i+1);
              printf("%10ld%8s%3c%6d/%02d/%02d",stu[i].studentID,
                                              stu[i].studentNAME,
                                              stu[i].studentSEX,
                                              stu[i].birthday.year,
                                              stu[i].birthday.month,
                                              stu[i].birthday.day);
             printf("%6.1f\n",stu[i].zongfen);
         }
    }
    void sorthightolowdouble(STUDENT stu[],int n,int m,int q)//全部单科从大到小的学生排序
    {
        STUDENT stuu2;
        int j,k,p;
         printf("**************************************\n");
            printf("第%d科的成绩按照降序排序如下:\n",q);
            for(j=0;j<n-1;j++)
            {
                for(k=j+1;k<n;k++)
                {
                    if(stu[j].score[q]<stu[k].score[q])
                    {
                        stuu2=stu[j];
                        stu[j]=stu[k];
                        stu[k]=stuu2;
                    }
                }
            }
            for(p=0;p<n;p++)
            {
               printf("%10ld%8s%3c%6d/%02d/%02d",stu[p].studentID,
                                              stu[p].studentNAME,
                                              stu[p].studentSEX,
                                              stu[p].birthday.year,
                                              stu[p].birthday.month,
                                              stu[p].birthday.day);
               printf("%6.1f\n",stu[p].score[q]);
            }
            printf("**************************************\n");
    }
    void sortlowtohighdouble(STUDENT stu[],int n,int m,int q)//全部单科从小到大的学生排序
    {
        STUDENT stuu2;
        int j,k,p;
         printf("**************************************\n");
            printf("第%d科的成绩按照升序排序如下:\n",q);
            for(j=0;j<n-1;j++)
            {
                for(k=j+1;k<n;k++)
                {
                    if(stu[j].score[q]>stu[k].score[q])
                    {
                        stuu2=stu[j];
                        stu[j]=stu[k];
                        stu[k]=stuu2;
                    }
                }
            }
            for(p=0;p<n;p++)
            {
               printf("%10ld%8s%3c%6d/%02d/%02d",stu[p].studentID,
                                              stu[p].studentNAME,
                                              stu[p].studentSEX,
                                              stu[p].birthday.year,
                                              stu[p].birthday.month,
                                              stu[p].birthday.day);
               printf("(被升序的成绩)%6.1f\n",stu[p].score[q]);
            }
             printf("**************************************\n");
    }
    void sorthightolowsingle(STUDENT stu[],int n,int m,int q)//单科从大到小的学生排序
    {
        STUDENT stuu2;
        int j,k,p;
            printf("第%d科的成绩按照降序排序如下:\n",q);
            for(j=0;j<n-1;j++)
            {
                for(k=j+1;k<n;k++)
                {
                    if(stu[j].score[q-1]<stu[k].score[q-1])
                    {
                        stuu2=stu[j];
                        stu[j]=stu[k];
                        stu[k]=stuu2;
                    }
                }
            }
            for(p=0;p<n;p++)
            {
               printf("%10ld%8s%3c%6d/%02d/%02d",stu[p].studentID,
                                              stu[p].studentNAME,
                                              stu[p].studentSEX,
                                              stu[p].birthday.year,
                                              stu[p].birthday.month,
                                              stu[p].birthday.day);
               printf("%6.1f\n",stu[p].score[q-1]);
            }
            printf("\n");
    }
    void sortlowtohighsingle(STUDENT stu[],int n,int m,int q)//单科从小到大的学生排序
    {
        STUDENT stuu2;
        int j,k,p;
            printf("第%d科的成绩按照升序排序如下:\n",q);
            for(j=0;j<n-1;j++)
            {
                for(k=j+1;k<n;k++)
                {
                    if(stu[j].score[q-1]>stu[k].score[q-1])
                    {
                        stuu2=stu[j];
                        stu[j]=stu[k];
                        stu[k]=stuu2;
                    }
                }
            }
            for(p=0;p<n;p++)
            {
               printf("%10ld%8s%3c%6d/%02d/%02d",stu[p].studentID,
                                              stu[p].studentNAME,
                                              stu[p].studentSEX,
                                              stu[p].birthday.year,
                                              stu[p].birthday.month,
                                              stu[p].birthday.day);
               printf("%6.1f\n",stu[p].score[q-1]);
            }
            printf("\n");
    }
    void sortstudentIDlowtohigh(STUDENT stu[],int n,int m)//按照学号从小到大排序
    {
        int i,j;
        STUDENT stuu3;
        printf("**************************************\n");
        printf("按照学号从小到大的排序如下:\n");
        for(i=0;i<n-1;i++)
        {
            for(j=i+1;j<n;j++)
            {
                if(stu[i].studentID>stu[j].studentID)
                {
                    stuu3=stu[i];
                    stu[i]=stu[j];
                    stu[j]=stuu3;
                }
            }
        }
        for(i=0;i<n;i++)
        {
            printf("%10ld%8s%3c%6d/%02d/%02d",stu[i].studentID,
                                              stu[i].studentNAME,
                                              stu[i].studentSEX,
                                              stu[i].birthday.year,
                                              stu[i].birthday.month,
                                              stu[i].birthday.day);
            for(j=0;j<m;j++)
            {
                printf("%6.1f",stu[i].score[j]);
            }
            printf("%6.1f%6.1f",stu[i].zongfen,stu[i].aver);
            printf("\n");
        }
        printf("\n");
        printf("**************************************\n");
    }
    void sortstudentnamelowtohigh(STUDENT stu[],int n,int m)//按照字典排序
    {
        STUDENT stuu4;
        int i,j;
        for(i=0;i<n-1;i++)
        {
            for(j=i+1;j<n;j++)
            {
                if(strcmp(stu[i].studentNAME,stu[j].studentNAME)>0)
                {
                    stuu4=stu[i];
                    stu[i]=stu[j];
                    stu[j]=stuu4;
                }
            }
        }
        printf("**************************************\n");
        printf("按照字典字母先后排序:\n");
        for(i=0;i<n;i++)
        {
            printf("%10ld%8s%3c%6d/%02d/%02d",stu[i].studentID,
                                              stu[i].studentNAME,
                                              stu[i].studentSEX,
                                              stu[i].birthday.year,
                                              stu[i].birthday.month,
                                              stu[i].birthday.day);
            for(j=0;j<m;j++)
            {
                printf("%6.1f",stu[i].score[j]);
            }
            printf("%6.1f%6.1f",stu[i].zongfen,stu[i].aver);
            printf("\n");
        }
        printf("\n");
        printf("**************************************\n");
    }
    void findstudent(const STUDENT stu[],int n,int m,long w)//找人-用学号
    {
        printf("请输入目标人物的学号\n");
        int i,j=1;
        int e;
        for(i=0;i<n;i++)
        {
            if(w==stu[i].studentID)
            {
               printf("找到了!\n");
               j=0;
               printf("名次为:%d\n",stu[i].mingci);
               printf("%10ld%8s%3c%6d/%02d/%02d",stu[i].studentID,
                                              stu[i].studentNAME,
                                              stu[i].studentSEX,
                                              stu[i].birthday.year,
                                              stu[i].birthday.month,
                                              stu[i].birthday.day);
            for(e=0;e<m;e++)
            {
                printf("%6.1f",stu[i].score[e]);
            }
            printf("%6.1f%6.1f",stu[i].zongfen,stu[i].aver);
            printf("\n");
            }
        }
            if(j==1)
            {
                printf("Error! Can't find!\n");
            }
    }
    void menu()//菜单
    {
        printf("___________________________________________________________________________________\n");
        printf("|1.Input record(录入姓名、学号等)                                               |\n");
        printf("|2.Caculate total and average score of every course(算课程总分和平均分)         |\n");
        printf("|3.Caculate total and average score of every student(算学生总分和平均分)        |\n");
        printf("|4.Sort in descending order by total score of every student(名次表从高到低)     |\n");
        printf("|5.Sort in ascending order by total score of every student(名次表从低到高)      |\n");
        printf("|6.Sort in ascending order by number(按学号)                                    |\n");
        printf("|7.Sort in dictionary order by name(按字典序)                                   |\n");
        printf("|8.Search by number(找人-学号)                                                  |\n");
        printf("|9.Search by name(找人-姓名)                                                    |\n");
        printf("|10.Statistic analysis for every course(按优秀、良好等统计过)                   |\n");
        printf("|11.List record(输出全部信息)                                                   |\n");
        printf("|12.Write to a file(写入文件)                                                   |\n");
        printf("|13.Read from a file(读取文件)                                                  |\n");
        printf("|14.Sort by single course(按照单科排序)                                         |\n");
        printf("|15.Change the information(修改信息)                                            |\n");
        printf("|16.Add student information(增加信息)                                           |\n");
        printf("|0.Exit(退出)                                                                   |\n");
        printf("|_________________________________________________________________________________|\n");
    }
    void readfromfile(STUDENT stu[],int *n ,int *m)//读取文件
    {
        FILE *fp;
        int i,j;
        if((fp=fopen("G://score.txt","r"))==NULL)
        {
            printf("Failure to open score.bin!\n");
            exit(0);
        }
        printf("Open the score.txt successfully!\n");
        fscanf(fp,"%d\t%d",n,m);
        for(i=0;i<*n;i++)
        {
            fscanf(fp,"%10ld",&stu[i].studentID);
            fscanf(fp,"%8s",stu[i].studentNAME);
            fscanf(fp," %c",&stu[i].studentSEX);
            fscanf(fp,"%6d/%2d/%2d",&stu[i].birthday.year,
                                    &stu[i].birthday.month,
                                    &stu[i].birthday.day);
        for(j=0;j<*m;j++)
        {
            fscanf(fp,"%4f",&stu[i].score[j]);
        }
        //fscanf(fp,"%f",&stu[i].aver);
        //fscanf(fp,"%4d",&stu[i].zongfen);
        }
        fclose(fp);
    }
    void printscore(STUDENT stu[],int n,int m)//打印分数
    {
        printf("**************************************\n");
        int i,j;
        for(i=0;i<n;i++)
        {
            printf("%10ld%8s%3c%6d/%02d/%02d",
                   stu[i].studentID,stu[i].studentNAME,
                   stu[i].studentSEX,stu[i].birthday.year,
                   stu[i].birthday.month,stu[i].birthday.day);
        for(j=0;j<m;j++)
        {
            printf("%6.1f",stu[i].score[j]);
        }
        printf("%6.1f",stu[i].aver);
        printf("%6.1f\n",stu[i].zongfen);
        }
        printf("**************************************\n");
    }
    void writetofile(STUDENT stu[],int n,int m)//写入文件
    {
        FILE *fp;
        int i,j;
        if((fp=fopen("G://score.txt","w"))==NULL)
        {
            printf("Failure to open score.txt!\n");
            exit(0);
        }
        fprintf(fp,"%d\t%d\n",n,m);
        for(i=0;i<n;i++)
        {
            fprintf(fp,"%10ld%8s%3c%6d/%02d/%02d",stu[i].studentID,
                    stu[i].studentNAME,stu[i].studentSEX,stu[i].birthday.year,
                    stu[i].birthday.month,stu[i].birthday.day);
        for(j=0;j<m;j++)
        {
            fprintf(fp,"%4.1f",stu[i].score[j]);
        }
        fprintf(fp,"%6.1f%4.1f\n",stu[i].aver,stu[i].zongfen);
        }
        printf("write in the score successfully!\n");
        fclose(fp);
    }
    void findstudentt(const STUDENT stu[],int n,int m,char str[])//找人-用名字
    {
        int i,flag=1,e;
        for(i=0;i<n;i++)
        {
            if(strcmp(str,stu[i].studentNAME)==0)
            {
                printf("**************************************\n");
                printf("Find it!\n");
                printf("排名为:%d\n",stu[i].mingci);
                printf("%10ld%8s%3c%6d/%02d/%02d",stu[i].studentID,
                                              stu[i].studentNAME,
                                              stu[i].studentSEX,
                                              stu[i].birthday.year,
                                              stu[i].birthday.month,
                                              stu[i].birthday.day);
            for(e=0;e<m;e++)
            {
                printf("%6.1f",stu[i].score[e]);
            }
            printf("%5.1f%6.1f",stu[i].zongfen,stu[i].aver);
             printf("\n");
             printf("**************************************\n");
             flag=0;
            }
        }
        if(flag)printf("Error! Can't find!");
    }
    void youxiubaifenbi(STUDENT stu[],int n,int m)//按照优秀及其百分比输出
    {
        printf("**************************************\n");
        int i,j;
        for(i=0;i<m;i++)
        {
            int q1=0,q2=0,q3=0,q4=0,q5=0;
            for(j=0;j<n;j++)
            {
                if(stu[j].score[i]>=90&&stu[j].score[i]<=100)
                {
                    q1++;
                }
                if(stu[j].score[i]>=80&&stu[j].score[i]<=89)
                {
                    q2++;
                }
                if(stu[j].score[i]>=70&&stu[j].score[i]<=79)
                {
                    q3++;
                }
                if(stu[j].score[i]>=60&&stu[j].score[i]<=69)
                {
                    q4++;
                }
                if(stu[j].score[i]>=0&&stu[j].score[i]<=59)
                {
                    q5++;
                }
            }
            printf("第%d门课程情况如下:\n",i+1);
            printf("优秀(90-100)%d\t%3.2f%%\n良好(80-89) %d\t%3.2f%%\n中等(70-79) %d\t%3.2f%%\n及格(60-69) %d\t%3.2f%%\n不及格(0-59)%d\t%3.2f%%\n",
                   q1,(float)q1*1.0/n*100,q2,(float)q2*1.0/n*100,q3,(float)q3*1.0/n*100,q4,(float)q4*1.0/n*100,q5,(float)q5*1.0/n*100);
            printf("\n");
        }
        printf("**************************************\n");
    }
    void printfquanbu(STUDENT stu[],int n,int m)//输出每个学生的全部信息,以及每门课程的总分和平均分
    {
        int i,j;
        printf("**************************************\n");
        printf("全部信息如下:\n");
        printf("名次  序号     名字 性别  生日(年月日) 课程分数(3门)  总分 平均分\n");
        for(i=0;i<n;i++)
        {
            printf("%2d",stu[i].mingci);
            printf("%10ld%8s%3c%8d/%02d/%02d",stu[i].studentID,
                                              stu[i].studentNAME,
                                              stu[i].studentSEX,
                                              stu[i].birthday.year,
                                              stu[i].birthday.month,
                                              stu[i].birthday.day);
        printf("   ");
        for(j=0;j<m;j++)
        {
            printf("%5.1f",stu[i].score[j]);
        }
        printf("%7.1f",stu[i].zongfen);
        printf("%6.1f\n",stu[i].aver);
        }
        printf("\n");
        printf("**************************************\n");
    }
    void ssorthightolowsum(STUDENT stu[],int n,int m)//按照总成绩对学生进行降序排序
    {
         STUDENT stuu1;
         int i,j;
         for(i=0;i<n-1;i++)
         {
             for(j=i+1;j<n;j++)
             {
                if(stu[i].zongfen<stu[i].zongfen)
                {
                     stuu1=stu[i];
                     stu[i]=stu[j];
                     stu[j]=stuu1;
                }
             }
         }
         for(i=0;i<n;i++)
         {
             stu[i].mingci=i+1;
         }
    }
    void sorthightolowsumm(STUDENT stu[],int n,int m)//按照总成绩对学生进行降序排序并且输出
    {
         STUDENT stuu1;
         int i,j;
         for(i=0;i<n-1;i++)
         {
             for(j=i+1;j<n;j++)
             {
                if(stu[i].zongfen<stu[j].zongfen)
                {
                     stuu1=stu[i];
                     stu[i]=stu[j];
                     stu[j]=stuu1;
                }
             }
         }
         for(i=0;i<n;i++)
         {
             stu[i].mingci=i+1;
         }
    }
    void zengjiaxuesheng(STUDENT stu[],float sum[],int n,int m,int xuesheng)//增加学生信息
    {
         int i,j;
        for(i=0;i<xuesheng;i++)
        {
            printf("请输入第%d个学生的信息\n",n+i+1);
            printf("按照学号、姓名、性别(M/F)、生日(例如2000 06 15)、%d科成绩输入\n",m);
            scanf("%ld",&stu[i+n].studentID);
            scanf("%s",stu[i+n].studentNAME);
            scanf(" %c",&stu[i+n].studentSEX);
            scanf("%d",&stu[i+n].birthday.year);
            scanf("%d",&stu[i+n].birthday.month);
            scanf("%d",&stu[i+n].birthday.day);
            for(j=0;j<m;j++)
            {
                scanf("%f",&stu[i+n].score[j]);
            }
        }
        printf("\n");
        Averscore(stu,sum,n+xuesheng,m);
        sorthightolowsum(stu,n+xuesheng,m);
        printfquanbu(stu,n+xuesheng,m);
        printf("若要保存,请选择12选项输出文件!\n");
        printf("**************************************\n");
    }
    
    

    代码可能会有点赘余,刚开始学c的时候写的,我估摸了一下,一共900行代码,优化一下代码和实现能到500行吧
    数据:
    180801 李华 M 2000 06 15 97 90 68
    180802 张景 M 2000 05 12 77 60 80
    180803 艾柯 F 2001 04 32 80 88 78
    180804 吉铎 M 2000 08 23 45 60 88
    180805 方哲 M 2000 06 30 100 78 95
    180806 杨明 M 1999 12 21 86 89 90
    180807 科尔 F 2000 02 12 66 70 85
    180808 王淼 M 1999 11 05 77 80 65
    180809 章北 F 2000 06 05 88 78 80
    180810 艾岙 M 1999 06 21 99 99 99

  • 您还可以看一下 张颜源老师的2020新版C语言程序设计零基础入门小白自学编程课程中的 Codeblocks编辑器的安装使用小节, 巩固相关知识点
  • 以下回答由chatgpt基于相关博客总结生成:

    这篇参考资料主要是给出了在CodeBlocks中创建和运行C语言程序的步骤,以及dll文件的调用和使用方法。但是对于给出的#c语言#主程序代码含义和如何在CodeBlocks中运行该代码,资料中并没有直接解答。因此,我在这里提供一下可能的思路:

    1. 首先需要了解给出的#c语言#主函数代码中的语法和结构,大致可以解释为:
    #include <stdio.h>
    void main(){
        printf("Hello World!");
    }
    

    这段代码包含了stdio.h头文件和主函数main,其中printf函数可以打印输出"Hello World!"字符串。这是一个简单的C语言程序用来输出"Hello World!"字符串。

    1. 接下来,在CodeBlocks中新建C语言源文件并将上述代码复制进去即可。具体可按照参考资料中的步骤:依次点击 File->New->File… ->选择 C/C++ source -> 点击 Next -> 选择 C ->选择文件存储地址并命名 ->点击保存 -> 最后点击Finish。

    2. 编译运行程序可以按照参考资料中的步骤:点击 Build and run,运行成功后可以看到输出了"Hello World!"字符串。

    总之,在CodeBlocks中创建和运行C语言程序并不难,只需要按照参考资料中的步骤来就可以了。而关于dll文件的调用和使用方法,由于题目并没有要求,就在这里不再赘述。