/* 一个修改版本 */
#include
struct student
{
int num;
char name[10];
char sex;
char address[20];
};
struct student stu[3] = {
{000, "li lin", 'm', "103 beijing road"},
{001, "zhang fun", 'm', "130 shanghai road"},
{002, "wang min", 'f', "1010 zhongshan road"}
};
void query(void);
void modify(void);
int main(void)
{
char ch;
int i;
printf("num name sex address\n");
for (i = 0; i < 3; i++)
printf("%5d%10s%3c%20s\n", stu[i].num, stu[i].name,
stu[i].sex, stu[i].address);
putchar('\n');
printf("do you want to query? [Y/N]\n");
scanf("%c", &ch);
putchar('\n');
if(ch != '\n')
while(getchar() != '\n')
continue;
if (ch == 'Y' || ch == 'y')
query();
printf("do you want to modify? [Y/N]\n");
scanf("%c", &ch);
putchar('\n');
if(ch != '\n')
while(getchar() != '\n')
continue;
if (ch == 'Y' || ch == 'y')
modify();
printf("Bye!\n");
getchar();
return 0;
}
void query()
{
int i, number, k;
printf("please enter numbers: ");
while(scanf("%d", &number) != 1)
{
printf("please enter numbers[integer]: ");
while(getchar() != '\n')
continue;
}
while(getchar() != '\n')
continue;
printf("num name sex address\n");
for (i = k = 0; i < 3; i++)
{
if (number == stu[i].num)
{
printf("%-3d %-20s %c %20s\n", stu[i].num, stu[i].name,
stu[i].sex, stu[i].address);
k = 1;
}
}
if(k == 0)
printf("Not!\n");
putchar('\n');
}
void modify()
{
int modinum, k, i;
printf("please input theseat which you will modify:");
while(scanf("%d", &modinum) != 1)
{
printf("please input theseat which you will modify[integer]:");
while(getchar() != '\n')
continue;
}
while(getchar() != '\n')
continue;
for (i = k = 0; i < 3; i++ )
{
if (modinum == stu[i].num)
{
printf("Please enter num: ");
while(scanf("%d", &stu[i].num) != 1)
{
printf("Please enter num[integer]: ");
while(getchar() != '\n')
continue;
}
while(getchar() != '\n')
continue;
printf("Please enter name: ");
while(scanf("%s", stu[i].name) == 0)
{
while(getchar() != '\n')
continue;
printf("Please enter name: ");
}
while(getchar() != '\n')
continue;
do
{
printf("Please enter sex[m/f]: ");
scanf("%c", &stu[i].sex);
while(getchar() != '\n')
continue;
}while(stu[i].sex != 'm' && stu[i].sex != 'f');
printf("Please enter address: ");
while(scanf("%s", stu[i].address) == 0)
{
printf("Please enter address: ");
while(getchar() != '\n')
continue;
}
while(getchar() != '\n')
continue;
k = 1;
}
}
if(k == 0)
printf("Not!\n");
putchar('\n');
}