西安建筑科技大学2017年869程序设计

西安建筑科技大学2017年869程序设计,第1张

西安建筑科技大学2017年869程序设计

1、(15分)设计一个程序从键盘读入一段英文文本,统计各字母和数字出现次数,并将结果输出显示器。(基础题)

#include 
#include 
#define N 100
int main()
{
    char str[N];
    int i;
    int a=0,b=0;//a代表字母个数,b代表数字个数
    gets(str);
    for(i=0;i='a'&&str[i]<='z'||str[i]>='A'&&str[i]<='Z')
        a++;
        if(str[i]>='0'&&str[i]<='9')
        b++;
    }
    printf("共有%d个字母n,也有%d个数字n",a,b);
}

运行结果:

2、(15分)找出一个二维数组(不小于四行四列)的鞍点,即在该位置上的元素在改行上最大、在该列最小。也可能没有鞍点,如果有鞍点,输出该鞍点的行列号,如果无鞍点输出无鞍点的信息。(细节题:本张试卷最难的题)

#include 
#define N 4
#define M 4
int main()
{
    int i,j,k,a[N][M]={2,3,5,4,3,5,7,6,5,4,9,8,7,5,6,3},max,maxj,flag;
    printf("二维数组为:n");
    for(i=0;i<4;i++)
    {
        for(j=0;j<4;j++)
        {
            printf("%dt",a[i][j]);
        }
        printf("n");
    }

    for(i=0;imax)
        {
            max=a[i][j];
            maxj=j;
         }
         flag=1;//纵向比较是否为最小
         for(k=0;ka[k][maxj])//纵向还有比它小的值 不是鞍点 退出此次循环 执行下一行
         {
             flag=0;
             continue;
         }
         if(flag)//max为此列最小值
         {
             printf("你看看你看看鞍点是a[%d][%d]=%d",i,maxj,max);
             break;
         }
     }
     if(!flag)
     printf("没有鞍点n");
     return 0;


}

运行结果:

​​​​​​​3、   (20分)设计一个学生成绩统计程序。程序从文本文件中读入每个学生的学号、姓名(姓名是拼音并不含空格)、5门课程的成绩,学生数不超过100。程序求出每个学生的5门课总分,按总分降序排序,并按此顺序显示器输出每个学生的学号、姓名、总分;并输出每门课程的平均分(课程总分/学生数)(综合题)

​​​​​​​(注:本题需要自己先建立文件)

#include 
#include 
struct stu{
    char stuid[13],name[20],g[3];
    int score;
};
int main(int argc, char *argy[]){
    FILE *fp,*fq;
    struct stu *p, t;
    int i,j,k,n,a,b,c,d;
    fq=fopen("stu2.txt" ,"w");

    if(!fq || (fp=fopen("stu1. txt" , "r"))==NULL){
    printf("打开文件, exit...n");
    return 0;
}

for(n=0;fscanf(fp,"%s%s%s%d" ,t.stuid,t.name,t.g, &t.score),!feof(fp);n++);
    if((p=(struct stu *)malloc(sizeof(t)*n)==NULL))
    {
        printf("空文件 n");
        return 0;
    }
    rewind(fp);
for(a=b=c=d=i=0;i=90 && p[i].score<=100)
        a++;
    else if(p[i].score>=80 && p[i].score<=89)
        b++;
    else if(p[i].score>=70 && p[i].score<=79)
        c++;
    else
        d++;
}
fclose(fp);

fprintf(fq,"优: %g良: %g中: %g差: %gn",a/(n+0.0),b/(n+0.0),c/(n+0.0),d/(n+0.0));

printf("优: %g良: %g中: %g差: %gn",8/(n+9.0),b/(n+0.0),c/(n+0.0),d/(n+0.0));
    for(i=0;i 

 

 (过程复杂没有单独建立文件,理解代码即可)

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

原文地址: http://outofmemory.cn/zaji/4652755.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-06
下一篇 2022-11-06

发表评论

登录后才能评论

评论列表(0条)

保存