我正在处理一个代码,该代码从用户那里获得输入并获取大学名称,许可证和区号。
现在要求用户搜索大学,如果找到则给出大学名称。
许可证长度也应仅为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.");}
}
}