标题:为什么数不出语文最高分学生名字
只看楼主
冬天的梦
Rank: 1
等 级:新手上路
帖 子:5
专家分:5
注 册:2014-12-16
结帖率:66.67%
 问题点数:0 回复次数:0 
为什么数不出语文最高分学生名字
程序代码:
// 2014.12.19.10.52.cpp : 定义控制台应用程序的入口点。
//

// 2014.12.18.12.23.cpp : 定义控制台应用程序的入口点。
//当不能进入循环,就逐步检查变量,或输入printf输出变量的值


#include "stdafx.h"
#include"string.h"

int _tmain(int argc, _TCHAR* argv[])
{
        printf("欢迎来到学生管理系统");

        
        struct STUDENT //将这个当做一种类型
        {
                char name[50];
        int stu[100];//学生人数100
        char stun[100][30];//学生姓名
        int stuk[4][100];//学生四门功课成绩
        }p1;
        
        int i=0;
        int n=0;
        
        while(true)
        {
                printf("\n请输入要查询的内容");
                gets(p1.name);//输入输出结构名+点+结构成员
        if (strcmp(p1.name,"input")==0)
        {
                while(i<100)
                {
                printf("请输入%d学生姓名",i+1);
                //scanf("%s",p1.stun[i]);用这个会出错,直接跳过这一行
                gets(p1.stun[i]);
                  if(strcmp(p1.stun[i]," ")==0)
                                   break;
                printf("输入成绩");
                scanf("%d,%d,%d,%d,",&p1.stuk[0][i],&p1.stuk[1][i],&p1.stuk[2][i],&p1.stuk[3][i]);
                //scanf("\n第%d个学生的语文成绩%d,数学成绩%d,英语成绩%d,计算机成绩%d",&p1.stun[i],&stuk[0][i],&stuk[1][i],&stuk[2][i],&stuk[3][i]);
                i++;
                 
                          getchar();//接收(消化掉)上一次回车
                           printf("\n"); 

                }
        
        }
        else if(strcmp(p1.name,"avg")==0)
        {
                double sum1=0,sum2=0,sum3=0,sum4=0;//求平均分double就好比较精确,输出符号是g
                for(n=0;n<i;n++)
                {
                
                sum1=sum1+p1.stuk[0][n];
                sum2=sum2+p1.stuk[1][n];
            sum3=sum3+p1.stuk[2][n];
                sum4=sum4+p1.stuk[3][n];
                }
                printf("语文平均分%g,数学平均分%g,英语平均分%g,计算机平均分%g",sum1/i,sum2/i,sum3/i,sum4/i);
        }
        else if(strcmp(p1.name,"list")==0)
        {
                printf("%d",n);
                for(n=0;n<i;n++)
                {
                printf("\n第%d个学生的语文成绩%d,数学成绩%d,英语成绩%d,计算机成绩%d",n,p1.stuk[0][n],p1.stuk[1][n],p1.stuk[2][n],p1.stuk[3][n]);
                }
        }
                else if(strcmp(p1.name,"maxmin")==0)
                {
                
                 int x;
                 x=0;
                 for(n=0;n<i;n++)
                {
                        printf("%s",p1.stun[n]);//<font color="#ff0000">a为什么这里却可以输出学生名字</font>
                 x=p1.stuk[0][n];
                 printf("\n%d\n",x);
                 if(x<p1.stuk[0][i])
                         x=p1.stuk[0][i];
                 }
                        printf("\n%d",i);
                        puts(p1.stun[n]);<font color="#ff0000">//1为什么不能输出语文最高分的学生姓</font>名
                        printf("%s",p1.stun[n]);<font color="#ff0000">//2为什么不能输出语文最高分的学生姓</font>名
                        printf("\n语文最高分%d,姓名%s",x,p1.stun[n]);<font color="#ff0000">//3为什么不能输出语文最高分的学生姓</font>名
                        printf("%s",p1.stun[n]);<font color="#ff0000">//4为什么不能输出语文最高分的学生姓</font>名
        
        }
        else
        {
                printf("帮助,input是输入,avg是求平均分,list是列出学生成绩");
        }
        }
        return 0;
}

复制代码printf放在a上面可以输出学生名字,怎么下面放在1,2,3,4不能输出学生名字
搜索更多相关主题的帖子: 应用程序 控制台 语文 
2014-12-19 13:27



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-440123-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.247402 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved