写一个程序,需求:由...制作3单向动态列表学生数据节点配置,输入学生数据向每个节点

(每个学生的数据包含学号、全名、成就)。每个节点然后逐个输出数据。

正确的程序,如下面的:

#include<stdio.h>
#include<malloc.h>
#define LEN sizeof(struct student)

struct student
{
 int num;
 char name[20];
 float score;
 struct student *next;
} ;

void main()
{
 struct student *head,*p,*q;
 head=p=(struct student*) malloc(LEN);
 scanf("%d,%f,%s",&p->num,&p->score,p->name);
 p=(struct student*) malloc(LEN);
 scanf("%d,%f,%s",&p->num,&p->score,p->name);
 q=(struct student*) malloc(LEN);
 scanf("%d,%f,%s",&q->num,&q->score,q->name);
 head->next=p;
 p->next=q;

q->next=NULL;

p=head;
 printf("\n结点 1:%d,%5.1f,%s",p->num,p->score,p->name);
 p=p->next;
 printf("\n结点 2:%d,%5.1f,%s",p->num,p->score,p->name);
 q=p->next;
 printf("\n结点 3:%d,%5.1f,%s\n",q->num,q->score,q->name);

}

执行结果为:

输入:

10101,98,li
10102,87,wang
10103,76,qi
输出:

结点 1:10101, 98.0,li
结点 2:10102, 87.0,wang
结点 3:10103, 76.0,qi

错误的程序例如以下:

#include<stdio.h>
#include<malloc.h>
#define LEN sizeof(struct student)

struct student
{
 int num;
 char name[2];
 float score;
 struct student *next;
} ;

void main()
{
 struct student *head,*p,*q;
 head=p=(struct student*) malloc(LEN);
 scanf("%d,%s,%f",&p->num,p->name,&p->score);
 p=(struct student*) malloc(LEN);
 scanf("%d,%s,%f",&p->num,p->name,&p->score);
 q=(struct student*) malloc(LEN);
 scanf("%d,%s,%f",&q->num,q->name,&p->score);
 head->next=p;
 p->next=q;

q->next=NULL;

p=head;
 printf("\n结点 1:%d,%5.1f,%s",p->num,p->score,p->name);
 p=p->next;
 printf("\n结点 2:%d,%5.1f,%s",p->num,p->score,p->name);
 q=p->next;
 printf("\n结点 3:%d,%5.1f,%s\n",q->num,q->score,q->name);

}
执行结果为:

输入:

10101,wang,,98
10102,wani,,87
10103,wangx,,76

输出:
结点 1:10101,  0.0,wang,,98 p�
结点 2:10102,  0.0,wani,,878p�
结点 3:10103,  0.0,wangx,,7

想要得到的结果应该为:

结点 1:10101,  98.0,wang,
结点 2:10102,  87.0,wani,
结点 3:10103,  76.0,wangx,

假设将想要输入的字符串数组放在输入的中间,就极有可能导致

在输入完字符串之后,还会将接下来输入的内容输入到字符串中,

会导致输出值发生混乱,得不到想要的结果,因而,最好将字符串

输入參数放在參数列表的最后,这样它有可能避免输出错误。

版权声明:本文博客原创文章。博客,未经同意,不得转载。

转载于:https://www.cnblogs.com/lcchuguo/p/4653771.html

结构变量输入不正确的顺序可能会导致不正确的操作结果相关推荐

  1. 转一个文件扩展名(后缀)与Content-Type(Mime-Type)的对应关系表,做下载的时候会用到,Mime-Type设置不正确,很可能会导致下载失败,尤其是在手机上

    文件扩展名 Content-Type(Mime-Type) 文件扩展名 Content-Type(Mime-Type) .*( 二进制流,不知道下载文件类型) application/octet-st ...

  2. c语言 程序数据要五行输出,C语言实验二程序、总结 顺序结构与输入、输出方法...

    实验二顺序结构与输入/输出方法 一实验目的 1 学会使用C的有关算术运算符,以及包含这些运算符的表达式,特别是自增减运算 符的使用. 2 掌握C语言中赋值语句的使用. 3 掌握C语言中各种数据的输入/ ...

  3. c语言变量周围堆栈损坏csdn,围绕变量“输入”的堆栈已损坏(Stack around the variable 'input' was corrupted)...

    围绕变量"输入"的堆栈已损坏(Stack around the variable 'input' was corrupted) 我刚开始使用C语言,但遇到了这个错误. 我试图在网上 ...

  4. 使用PostgreSQL以正确的顺序获取名称

    Western and Eastern name orders can be a PITA, particularly when titles and honorifics come into pla ...

  5. 对C语言 结构数组 指向结构变量的指针 指向结构数组的指针

    一.结构数组的定义 数组的元素可以是结构类型的.结构数组的每一个元素都是具有相同的结构类型的下标结构变量.在实际应用中,经常用结构数组来表示具有相同数据结构的一个群体. 如:一个班的学生的档案,一个车 ...

  6. 对C语言 结构体 和 结构变量

    一.结构体/结构的引入 在学生的登录记录表中,姓名应该为字符型.学号可以为整形或字符型,年龄应该为整形,性别应该为字符型,成绩可以整形或实型.显然不能用一个数组来存放这一组数据,因为数组各元素的类型和 ...

  7. 【结构体】结构变量的定义与初始化

    1.结构变量的定义 声明了结构类型后,还需要定义结构变量,以便在程序中引用它. 结构变量和其他变量一样,必须先定义后使用 (1)先定义结构类型,再定义结构变量 struct books { int b ...

  8. 具有单变量输入的CNN-LSTM编解码器模型

    卷积神经网络(CNN)可以作为编解码器结构中的编码器.CNN不直接支持序列输入;相反,一维CNN能够读取序列输入并自动学习显著特征.然后可以按照正常情况由LSTM解码器解释这些.我们将使用CNN和LS ...

  9. 如何以正确的顺序重新安装驱动程序 | Dell 中国

    购买 支持 社区 我的帐户 购买 支持 社区 如何以正确的顺序重新安装驱动程序 在戴尔笔记本电脑或台式机上手动重新安装Microsoft Windows操作系统后,您还必须以正确的顺序重新安装戴尔设备 ...

  10. 计算机内存堆,电脑卡顿就无脑堆内存?小A教你正确升级顺序是这样的!

    原标题:电脑卡顿就无脑堆内存?小A教你正确升级顺序是这样的! 古时候,当电脑变慢卡顿时,通常添加更多内存(RAM)就能解决问题.这个「偏方」也一直流传下来,似乎一直有效? 古人在电脑房上网的珍贵影像 ...

最新文章

  1. Verilog赋值间延迟语句与赋值内延迟语句比较
  2. 嵌入式MVN指令解析
  3. C++ 输入输出流 文本文件 二进制文件读写
  4. (转载)C语言的零长数组
  5. C语言经典例98-将字符转为大写字母并写入文件
  6. 返回动态html,使用硒返回动态页面的html代码
  7. 作业调度问题java代码_Tabu Search求解作业车间调度问题(Job Shop Scheduling)-附Java代码...
  8. python pandas dataframe 不显示索引_python中pandas.DataFrame的简单操作方法(创建、索引、增添与删除)...
  9. Panel的基本用法
  10. [免费专栏] Android安全之某游戏APK逆向分析
  11. 题外-解决mac重启后git无法使用
  12. mysql执行查询的时间记录及查看
  13. Android 读取Txt文件内容
  14. python爬虫点触验证码的识别思路(图片版)
  15. 21个经典的哲理故事
  16. 怎样使用NetFlow分析网络异常流量一
  17. TerraMaster TOS 远程命令执行(CVE-2022-24989)TerraMaster TOS 敏感信息泄露(CVE-2022-24990)
  18. w3af漏扫的基本使用
  19. 关于计算机经历兼职的英文作文,关于兼职的英语作文 The Part Time Job
  20. Python爬虫入门教程:下载某网站付费文档保存PDF

热门文章

  1. 推荐一款好用的Web端JSON在线编辑器svelte-jsoneditor
  2. 运行CATIA2018主程序setup.exe时,报错setup:Problem with VC11 Runtime installation
  3. apicloud开发之使用usb真机同步到安卓虚拟机
  4. 网页滚动截屏怎么截长图
  5. Windows11动态磁贴替代软件大盘点 _φ(❐_❐✧ windows教程
  6. arcpy.ProjectRaster_management
  7. java坦克大战图片素材包,坦克大战素材包
  8. Shopee Games 游戏引擎演进之路
  9. 使用openlayers投影阿伯斯(Albers)
  10. Chrome浏览器历史版本下载