鱼C论坛

 找回密码
 立即注册
查看: 2085|回复: 2

scanf为什么会报错

[复制链接]
发表于 2019-4-3 00:42:35 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
  1. #include <stdio.h>
  2. #include <stdlib.h>

  3. typedef int ElemType;
  4. ElemType a[100];
  5. typedef struct Lnode                        //创建单链表结构体//
  6. {
  7.         ElemType data;
  8.         struct Lnode* next;
  9. }LinkNode;

  10. int InsertElem(LinkNode *L, int n, ElemType e)       
  11. {
  12.         LinkNode* p, * pre, * s;
  13.         int i;
  14.         s = (LinkNode*)malloc(sizeof(LinkNode));
  15.         //s->data = e;
  16.         s->next = NULL;//插入尾部??
  17.         s->data = e;
  18.         p = L->next;
  19.         pre = L;
  20.         for (i = 0; i < n; i++) {
  21.                 if (p != NULL) {
  22.                         if (p->data < s->data) {
  23.                                 pre = p;
  24.                                 p = p->next;
  25.                         }
  26.                         else {
  27.                                 s->next = p;
  28.                                 pre->next = s;
  29.                                 break;
  30.                         }
  31.                 }
  32.         }
  33.         return ++n;
  34. }

  35. int main()
  36. {
  37.         LinkNode * L, * p, * q;
  38.         ElemType i, n;
  39.         ElemType e;//待插入值
  40.         //L = (LinkNode*)malloc(sizeof(LinkNode)); //不要头结点了,直接指针指给q的头
  41.         /*p = L->next;//L的next没有被赋值就给P???
  42.         printf("请输入单链表元素的个数:");*/
  43.         scanf("%d", &n);
  44.         printf("请输入元素的值:");
  45.         for (i = 0; i < n; i++) {
  46.                 scanf("%d",&a[i]);
  47.                 //scanf("%d", p->data);
  48.                 //p = p->next;
  49.         }
  50.         p= (LinkNode*)malloc(sizeof(LinkNode));
  51.         for (i = 0; i < n; i++) {
  52.                 if ((q = (LinkNode*)malloc(sizeof(LinkNode))) != NULL)
  53.                 {       
  54.                         q->data = a[i];
  55.                         q->next = NULL;
  56.                         if (i==0) L = q;//不要头结点了,直接指针指给q的头
  57.                         else p->next = q;
  58.                         p = q;
  59.                 }
  60.                 else {
  61.                         printf("malloc failure");
  62.                         break;
  63.                 }
  64.         }
  65.         //p = NULL;
  66.         printf("请输入待插入的值:");
  67.         scanf("%d", &e);
  68.         //q = L->next;
  69.         n = InsertElem(L, n, e);
  70.         printf("输出插入后的单链表:");
  71.         for (i = 0; i < n; i++) {
  72.                 printf("%2d", q->data);
  73.                 q = q->next;
  74.         }
  75.         return 0;
  76. }
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-4-3 08:19:57 | 显示全部楼层
报错信息?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-5-6 13:16:54 | 显示全部楼层
C++中默认不使用scanf   
在最开头加上 #define _CRT_SECURE_NO_WARNINGS(一定要加在最上方)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-27 17:24

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表