使用C语言结构检查大学执照

时间:2017-07-15 08:42:42

标签: c arrays structure

我正在处理一个代码,该代码从用户那里获得输入并获取大学名称,许可证和区号。

现在要求用户搜索大学,如果找到则给出大学名称。

许可证长度也应仅为6个字符,前2个应为大写字母,其余4个应为数字。

当我扫描3个大学名称时,它会跳过扫描中间名称。谁能告诉我代码有什么问题?

这是我的代码:

#include<stdio.h>
#include<string.h>
int main()
{  
   struct University
    {   
      char name[10];
      char li[6];
      int ar;
    }u[5];

char s[10];
int a,i,c=0,j,flag=1;

printf("Enter the number of records\n");
scanf("%d",&a);

if(a<=0)
printf("Unable to continue");
else
{
  printf("Enter the details of %d universities\n",a);
  for(i=0;i<a;i++)
   {
      printf("Name of the University\nLicense Number\nArea Code\n");
      scanf("%s %s %d",u[i].name,u[i].li,&u[i].ar);
      /*checking license length and its validity*/
      if(strlen(u[i].li)>6)
        c=c+1;
      for(j=0;j<2;j++)
       {
         if(u[i].li[j]<'A'||u[i].li[j]>'Z')
         c=c+1;

       }
      for(j=2;j<6;j++)
       { 
       if(u[i].li[j]<'0'||u[i].li[j]>'9')
       c=c+1;
       }
   }
if(c>0)
printf("Sorry! You have entered incorrect license number.");
else
   {
    printf("Enter the name of the University to be searched\n");
    scanf(" %s",s);
    for(i=0;i<a;i++)
      {
       if(strcmp(s,u[i].name)==0)
       flag=0;
      }
    if(flag==0)
    printf("University is licensed one.");
    else
    printf("University is not found.");}
    }
    }

0 个答案:

没有答案