黑马程序员技术交流社区

标题: 利用结构体数组,实现简易通信录 C语言代码 [打印本页]

作者: l5681065    时间: 2015-11-26 16:09
标题: 利用结构体数组,实现简易通信录 C语言代码
代码一
/*
定义一个结构,姓名 电话号码
让用户从键盘上输入要保存的姓名和电话号码
输入完成后,可以打印出来
*/
#include <stdio.h>
#include <stdlib.h>
#define len 1000
int main(int argc, char *argv[]) {
struct Contacts{
  char name[21];
  char num[21];
}person[len];

char a='Y';
int i=0;
while(1)
{
  if(a=='N'||a=='n')
   break;
  else if(a=='Y'||a=='y')
   {
    printf("\n姓名:");
    gets(person[i].name);
    printf("\n号码:");
    gets(person[i].num);//   
    i++;
   }  
  else
   {
    printf("输入错误\n");
   }
  printf("是否继续输入Y/N\n");
  scanf("%c",&a);
  getchar();  
  //printf("a=%c\n",a);  
}
int n=0;
for(n=0;n<i;n++)
{
  printf("姓名%s\n",person[n].name);
  printf("号码%s\n",person[n].num);
}
return 0;
}
**************************************************************
代码二
/*
定义一个结构,姓名 电话号码
让用户从键盘上输入要保存的姓名和电话号码
输入完成后,可以打印出来
*/
#include <stdio.h>
#include <stdlib.h>
#define len 1000
int main(int argc, char *argv[]) {
struct Contacts{
  char name[21];
  //char num[21];
  int num;
}person[len];

char a='Y';
int i=0;
while(1)
{
  
  if(a=='N'||a=='n')
   break;
  else if(a=='Y'||a=='y')
   {
    printf("\n姓名:");
    gets(person[i].name);
    printf("\n号码:");
    //gets(person[i].num);   
    scanf("%d",&person[i].num);
    getchar();
    i++;
   }  
  else
   {
    printf("输入错误\n");
   }
  printf("是否继续输入Y/N\n");
  scanf("%c",&a);
  getchar();  
  printf("a=%c\n",a);  
}
int n=0;
for(n=0;n<i;n++)
{
  printf("姓名%s\n",person[n].name);
  //printf("号码%s\n",person[n].num);
  printf("号码%d\n",person[n].num);
}
return 0;
}




作者: IPswhatb“is”    时间: 2015-11-27 00:04
真大神 啊
作者: Q曲    时间: 2015-11-27 10:37
char a='Y';

定义这个是干什么的呀~?
作者: l5681065    时间: 2015-11-29 13:28
初始化字符.如果少了这条语句 a的值将是一个不确定的字符,if语句无法判断除"Y,y,N,n"以外的别的字符,程序将进入死循环;




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2