user-0 提问: 求大神帮我看看这几条代码

回复:
user: user-0
content: 非常感谢你的帮忙！

user: user-1
content: 引用 1 楼 shimachao 的回复:这叫几条？这明明是大一C语言大作业的风格。  printf("请输入你要查找的编码:  ");     scanf("%d",NUm);  改为scanf("%d",&NUm);你漏了个& 确实是这里出了问题。另外你的编码风格的确需要改进。

user: user-2
content: 有很多函数的idngyi你都没有写就用了，真是蛋碎，哦哦只能改成这样了#include<time.h> #include<stdlib.h> #include<stdio.h> #include<string.h> struct car_type                     //定义结构体变量 {     int num;     char name[10];     int age;     float price;     struct student *naxt; }car[100];   int sum = 0; FILE *fp;                   //定义文件指针  void input();                      //定义输入函数 void output();                                   //定义输出函数 void save();                          //定义文件接受函数 void Addrecode();                       //定义添加汽车信息函数 int menu1();                                   //定义菜单函数 int Selectsearch();                  //定义选择查找类型函数 void cancel();                         //定义删除函数 void search();                            //定义查找函数 void searchName();                         //定义查找名字类型函数 void searchNum();                            //定义查找编码类型函数 void searchAge();                                //定义查找车龄类型函数  void save()                                      //定义文件接受函数 {     int i;     if((fp=fopen("car.dat","wb"))==NULL)         //判断能不能打开文件     {          printf("can not open file\n");          exit(0);     }     for(i=0;i<sum;i++)                                         //判断能不能输入文件信息     {         if(fwrite(&car[i],sizeof(struct car_type),1,fp)!=1)         {             printf("file write error\n");         }    }    fclose(fp); }    void input() {     int i,j;     srand((int)time(0));     for(i=0;i<100;i++)                        //进行输入汽车信息     {         system("cls");         sum=sum+1;         printf("请输入第%d汽车的编码    名字     价格:\n",i+1);         scanf("%d%s%f",&car[i].num,car[i].name,&car[i].price);         car[i].age=1+(int)(10.0*rand()/(RAND_MAX+1.0));         printf("第%d辆汽车的车龄为:%d",i+1,car[i].age);         printf("\n是否继续添加：1是0否:   ");               //判断是否继续输入         scanf("%d",&j);         if(j==1)         {             printf("\n");         }         else         {             break;         }     }     save(); }   int menu1() {     int num;     while(1)     {         system("cls");         printf("***************二手车管理系统*****************\n");         printf("*********************功能*********************\n");         printf("*                0.退出程序                  *\n");         printf("*              1.创建车辆信息                *\n");         printf("*              2.添加车辆信息                *\n");         printf("*              3.删除车辆信息                *\n");         printf("*              4.显示车辆信息                *\n");         printf("*              5.查找车辆信息                *\n");         printf("**************6.按价格进行排序****************\n");         printf("**********************************************\n");         printf("请输入您需要的功能编号0--5：");         scanf("%d",&num);         if(num<0||num>6)         {             printf("您输入的编号有误，按任意键继续输入：");             scanf("%d",&num);         }         else         {             break;         }     }     return num; }  void Addrecode() {     int i,j;     srand((int)time(0));     printf("请输入你要插入的车辆数:  ");     scanf("%d",&j);     if((fp = fopen("car.dat","rb"))==NULL)     {         printf("不能打开文件\n");         system("pause");         return;     }     for(i = 0;i<j;i++)     {          sum = sum + 1;          printf("请输入你要插入的第%d辆汽车信息(编码  名字   价格)\n",i+1);          fread(&car[i],sizeof(struct car_type),1,fp);          scanf("%d%s%f",&car[sum].num,car[sum+i].name,&car[sum+i].price);          car[sum].age=1+(int)(10.0*rand()/(RAND_MAX+1.0));          save();     }  }  int main() {      int menu;     while(1)     {         system("cls");         menu = menu1();         switch(menu)         {              case 0: exit(0);                      break;              case 1: input();                      break;              case 2: Addrecode();                      break;              //case 3: cancel();                  //    break;              case 4: output();                      break;              case 5: search();                      break;         }     } }   void output() {     int i;     if((fp = fopen("car.dat","rb"))==NULL)     {         printf("不能打开文件\n");         system("pause");         return;     }     printf("编码     名字      车龄     价格\n");     for(i = 0;i<sum;i++)     {         fread(&car[i],sizeof(struct car_type),1,fp);         printf("%d%10s    %d    %4.2f\n",car[i].num,car[i].name,car[i].age,car[i].price);     }      system("pause");     fclose(fp); }   int Selectsearch() {     int i;     while(1)     {          system("cls");          printf("***************1.按编码查找***************\n");          printf("***************2.按名字查找***************\n");          printf("***************3.按车龄查找***************\n");          printf("*******************0.退出*****************\n");          printf("请输入你要进行那种查找：  ");          scanf("%d",&i);          if(i<0||i>3)          {                printf("输入错误，请重新输入:\n");                scanf("%d",&i);          }          else          {             exit(0);          }     }     return i; }    void search() {     int num;     while(1)     {         system("cls");         num = Selectsearch();         switch(num)         {             case 0:                    exit(0);                    break;             case 1:                    searchNum();                    break;             //case 2:               //     searchName();               //     break;            // case 3:                 //   searchAge();                 //   break;         }     } }   void searchNum() {     int NUm;     int i;     if((fp = fopen("car.dat","rb"))==NULL)     {         printf("不能打开\n");         system("pause");         return;     }     printf("请输入你要查找的编码:  ");     scanf("%d",&NUm);     for(i =0;i<sum;i++)     {          fread(&car[i],sizeof(struct car_type),1,fp);          if(car[i].num==NUm)          {               printf("%d %10s   %d   %4.2f\n",car[i].num,car[i].name,car[i].age,car[i].price);          }     } }

user: user-0
content: 感谢你的帮忙！我知道了

user: user-3
content: printf里面的%和变量的一一对应关系 scanf里面的%和变量以及变量前加不加&的一一对应关系 是C代码中非常容易出错的地方，而且通常编译还不出错。 所以在编译源代码之前值得专门仔细检查一遍甚至多遍。  在每个最后不带\n的printf后面加fflush(stdout); 在每个不想受接收缓冲区旧内容影响的scanf前面加rewind(stdin); 另外请检查scanf的返回值。  代码功能归根结底不是别人帮自己看或讲解或注释出来的；而是被自己静下心来花足够长的时间和精力亲自动手单步或设断点或对执行到某步获得的中间结果显示或写到日志文件中一步一步分析出来的。 提醒：再牛×的老师也无法代替学生自己领悟和上厕所！ 单步调试和设断点调试是程序员必须掌握的技能之一。

user: user-4
content: 我表示是看了标题的“几条代码”进来的，然后一直滑到最下面，“几条”和“几行”还是有区别的。。。

user: user-5
content: 这叫几条？这明明是大一C语言大作业的风格。  printf("请输入你要查找的编码:  ");     scanf("%d",NUm);  改为scanf("%d",&NUm);你漏了个&

user: user-6
content: 表示观望，还以为几天不用滑鼠表，谁知道，我总结也懵了，不好意思。

user: user-7
content: 这尼玛的几条代码看得我蛋都碎了...

user: user-8
content: 这个几行比我想象中的要长啊，老实说，没看完，楼主好运了

user: user-9
content: 我躺枪了 躺倒在了“几条”上。这明明就只有一条你非要说几条，代码都不够看。。