| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 630 人关注过本帖
标题:[求助]FOR循环无法表达问题??
只看楼主 加入收藏
yuzhiyan
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2007-10-30
收藏
 问题点数:0 回复次数:5 
[求助]FOR循环无法表达问题??
为什么循环只能进行到红色处????????下边兰色的只能输入一次???
for(i=1;i<n+1;i++)
         {
                printf("Please input Sno and name  English, Maths ,physicsof score:\n" );
                scanf("%d,%c,%f,%f,%f",&k,stu[k].name,&b,&c,&d);
                stu[k].Sno=k;
                stu[k].English=b;
                stu[k].physics=c;
                stu[k].maths=d;
                stu[k].total=tot(b,c,d);
                stu[k].everage=ever(stu[k].total);
         }
求助啊!!!!谢谢!!!!
搜索更多相关主题的帖子: FOR 表达 
2007-11-22 20:12
静思
Rank: 3Rank: 3
来 自:沈阳
等 级:新手上路
威 望:8
帖 子:630
专家分:0
注 册:2006-2-28
收藏
得分:0 
进入到红色行时,在执行下一条scanf语句,提示你输入相应变量的值,输入完毕后,继续接着执行下个循环

英者自知,雄者自胜
2007-11-22 20:21
gbgame
Rank: 1
等 级:新手上路
帖 子:44
专家分:0
注 册:2007-10-27
收藏
得分:0 
可能第一次输入时有误,既有某个或某些字符残留在缓冲区中,使下一次scanf()不能正常读取。
请在scanf前加一条语句:
fflush(stdin);
以清除缓冲区里的“垃圾”
2007-11-22 20:54
qiang5219
Rank: 1
等 级:新手上路
帖 子:83
专家分:0
注 册:2007-9-10
收藏
得分:0 
是每次循环一次,提示你输入相应变量的值,再次循环.......
2007-11-22 21:01
yuzhiyan
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2007-10-30
收藏
得分:0 
第提示一次输入,输入后就连续提示两次但却无法输入
2007-11-24 17:48
yuzhiyan
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2007-10-30
收藏
得分:0 
全部程序在这,运行到蓝色输入只进行一次但,提示三次,红色部分运行直接停止不运行啊WHY???????

#include "stdio.h"
#include "string.h"
struct student
{
    int  No;
    int Sno;
    int total;
    int everage;
    int English;
    int physics;
    int maths;
};
    struct student stu[30];
    struct student stu_1;
int tot(int a,int b,int c)
{
    return(a+b+c);
}
int ever(int a)
{
    return(a/3);
}
void check(struct student stu[30],int a,int n)                /*查询成绩*/
{
             int b,j,i;
             while(a==1)
             {
                      printf("your student number:");
                      scanf("%d",&b);
                      for(i=0;i<n;i++)
                      if(stu[i].Sno==b)
                      {
                                 printf("No.:%d\nSno:%d\ntotal:%f\neverage:%f\nEnglish:%f,physics:%f,maths:%f",stu[i].No,stu[i].Sno,stu[i].total,stu[i].everage,stu[i].English,stu[i].physics,stu[i].maths);
                      }          printf("\n");
                                 getch();
                                 printf("if you know yourself input 1 else 0 :\n");
                                 scanf("%d",&a);
             }
}
main()
{   int n,i,j,min,k;
    int a,b,c,d;
    int tot(int a,int b,int c);
    int ever(int a);
    void check(struct student stu[30],int a,int n);
       printf("Please input the total students:\n" );
       scanf("%d",&n);   /*输入学生人数*/
    for(i=1;i<n+1;i++)
         {
                printf("Please input Sno and  English, Maths ,physicsof score:\n" );
                scanf("%d,%d,%d,%d",&k,&b,&c,&d);
                stu[k].Sno=k;
                stu[k].English=b;
                stu[k].physics=c;
                stu[k].maths=d;
                stu[k].total=tot(b,c,d);
                stu[k].everage=ever(stu[k].total);
         }
   for(i=1;i<n;i++)
       { min=i;
         for(j=i+1;j<n+1;j++)
         {
             if(stu[min].total<stu[j].total)
              stu_1=stu[min];
              stu[min]=stu[j];
              stu[j]=stu_1;

          }
        }
   for(i=1;i<n+1;i++)
       stu[i].No=i;
   for(i=1;i<n+1;i++)
          printf("No.:%3d,Sno:%3d,total:%4f,everage:%4f,English:%4f,physics:%4f,maths:%4f\n",stu[i].No,stu[i].Sno,stu[i].total,stu[i].everage,stu[i].English,stu[i].physics,stu[i].maths);
          getch();
          printf("if you know yourself input 1 else 0 :\n");
          scanf("%d",&a);
          check(stu,a,n) ;
          getch();
}
2007-11-24 18:06
快速回复:[求助]FOR循环无法表达问题??
数据加载中...
 
   



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

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