标题:求助,用vc测试没错,却通不过学生作业系统。
只看楼主
原名梓藤
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2012-2-14
 问题点数:0 回复次数:0 
求助,用vc测试没错,却通不过学生作业系统。


“case in”文件内容:

I am a student .q=a-m. z = i - w. My school is SCAU. It is a beau-
tiful university. 123 123. I like it.I am a student. -1 = 1 - 2.

我是初学者,这是一道作业题,题目要求如下:

把case in文件中的单词按照出现个数以及字母表顺序排序,然后把前五个单词输出。

(未满五个单词则全部输出)

#include<stdio.h>
#include <stdlib.h>
#include<string.h>
#include <math.h>

 


int main()
{
 int i,j,n,t,num,colum;
 int count[10000]={0},flog[10000]={0};
 char str[10000][20],temp[20],ch;

    FILE *fp;
 

//读入单词并计数
 
 fp=fopen("case.in","r");
 for(i=0;i<10000;i++)
 {
  for(j=0;j<20;j++)
  {
   if((ch=fgetc(fp))!=EOF)
   {
    if('A'<=ch&&ch<='Z')
     str[i][j]=ch+32;
    else if('a'<=ch&&ch<='z')
     str[i][j]=ch;
    else if(ch==' ')
    {str[i][j]='\0'; break;}
    else if (ch=='-')
    { flog[i]=1;
       colum=j;
       str[i][j]='\0';
       break;
    }
                else if(ch=='\n')
    {
      if(flog[i-1]==1)
      {i--;j=colum-1;}
         else
      {str[i][j]='\0'; break;}
     
    }
    else
    {str[i][j]='\0'; break;}
   }
  }
     count[i]=1;  //记录单词个数
       for(j=0;j<i;j++)
    if((strcmp(str[i],str[j])==0))
     count[i]++;

       if(ch==EOF)
  break;
 }
//排序


  n=i;  
  for(i=0;i<n;i++)
  {
   for(j=0;j<n-i;j++)
   {
    if(count[j]<count[j+1])
    {   
         strcpy(temp,str[j]);    t=count[j];
         strcpy(str[j],str[j+1]); count[j]=count[j+1];
      strcpy(str[j+1],temp);   count[j+1]=t;
    }
    else if(count[j]==count[j+1])
    {
     if((strcmp(str[j],str[j+1])>0))
     {
  
             strcpy(temp,str[j]);    t=count[j];
             strcpy(str[j],str[j+1]); count[j]=count[j+1];
          strcpy(str[j+1],temp);   count[j+1]=t;
   
     }
    }
   }
  }
 
//输出

        for(i=0;i<=n;i++)
  for(j=0;j<i;j++)
   if((strcmp(str[i],str[j]))==0)
   str[i][0]='\0';

            num=n;           //num 用于计算单词个数
  for(i=0;i<=n;i++)
            if(str[i][0]=='\0')
    num--;

 

     if(num>=5)
    num=5;
      for(i=0,j=0;j<num;i++)
   {
    if(str[i][0]!='\0')
   
    {   printf("%s %d\n",str[i],count[i]); j++;}

   }

   
 
 return 0;
}

搜索更多相关主题的帖子: 单词 university include school 
2012-02-14 22:48



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




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

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