c语言:编写一个输出链表的函数print

编写一个输出链表的函数print。

解:程序:

#include<stdio.h>

#include<stdlib.h>

#define LEN sizeof(struct Student)

struct Student

{

long num;

float score;

struct Student *next;

};

int n;

struct Student *creat()//建立链表的函数

{

struct Student *head;

struct Student *p1, *p2;

n = 0;

p1 = p2 = (struct Student *)malloc(LEN);

scanf("%ld,%f", &p1->num, &p1->score);

head = NULL;

while (p1->num != 0)

{

n = n + 1;

if (n == 1)

{

head = p1;

}

else

{

p2->next = p1;

}

p2 = p1;

p1 = (struct Student *)malloc(LEN);

scanf("%ld,%f", &p1->num, &p1->score);

}

p2->next = NULL;

return(head);

}

void print(struct Student *head)//输出链表的函数

{

struct Student *p;

printf("\nNow,These %d records are:\n",n);//records记录

p = head;//p指向第1个结点

if (head != NULL)//若不是空表

{

do

{

printf("%ld   %5.1f\n", p->num, p->score);

p = p->next;

} while (p != NULL);

}

}

void main()

{

struct Student *head;

head= creat();//调用函数返回链表第1个结点的地址

print(head);

}

结果:

1001,77

1003,88

1005,99

0,0

Now,These 3 records are:

1001    77.0

1003    88.0

1005    99.0

请按任意键继续. . .

时间: 2024-10-20 14:51:41

c语言:编写一个输出链表的函数print的相关文章

面试题之java 编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串。 要求不能出现截半的情况

题目:10. 编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串. 但是要保证汉字不被截半个,如“我ABC”4,应该截为“我AB”,输入“我ABC汉DEF”,6,应该输出为“我ABC”而不是“我ABC+汉的半个”. 一.需要分析 1.输入为一个字符串和字节数,输出为按字节截取的字符串-------------->按照字节[byte]截取操作字符串,先将String转换成byte类型 .2.汉字不可以截半----------------------------------

用 C 语言编写一个简单的垃圾回收器

人们似乎认为编写垃圾回收机制是很难的,是一种只有少数智者和Hans Boehm(et al)才能理解的高深魔法.我认为编写垃圾回收最难的地方就是内存分配,这和阅读K&R所写的malloc样例难度是相当的. 在开始之前有一些重要的事情需要说明一下:第一,我们所写的代码是基于Linux Kernel的,注意是Linux Kernel而不是GNU/Linux.第二,我们的代码是32bit的.第三,请不要直接使用这些代码.我并不保证这些代码完全正确,可能其中有一些我 还未发现的小的bug,但是整体思路仍

Swift语言编写一个简单的条形码扫描APP

swift语言编写一个简单的条形码扫描APP 原文地址:appcoda 在处理职员在杂货店的收银台排了很长的队伍,在机场帮助检查背包和旅客,或者在主要的食品供应商,协助处理乏味的存货清单过程,条形码扫描是很简单的处理工具.实际上,他们已经用了这个办法来解决消费者在智能购物,图书分类,等其他目的.因此,让我们来制作一个iPhone版本的条形码扫描工具吧! 对我们来说幸运的是,苹果已经制作了条形码扫描的程序,实现它是一件很简单的事情.我们将要研究进入AV Foundation框架的世界,组建APP,

编写一个程序实现strcpy函数的功能

1 #include <stdio.h> 2 #include <string.h> 3 #define N 5 4 5 6 char *mycpy(char *s1, char *s2) 7 { 8 //数组型 9 /* int i; 10 while(s2[i] != '\0') { 11 s1[i] = s2[i]; 12 i++; 13 } 14 s1[i] = '\0'; 15 return s1; */ 16 //指针型 17 char *p = s1; 18 whil

编写一个程序实现strcmp函数的功能

写自己的strcat函数------→mycmp 1 #include <stdio.h> 2 #include <string.h> 3 #define N 5 4 5 int mycmp(char *s1, char *s2) 6 { 7 //数组型 8 /* int i = 0; 9 while(s1[i] == s2[i] && s1[i] != '\0') { 10 i++; 11 } 12 13 return s1[i] - s2[i]; */ 14 /

编写一个程序实现strcat函数的功能

写自己的strcat函数------→mycat 1 #include <stdio.h> 2 #include <string.h> 3 #define N 5 4 5 char *mycat(char *s1, char *s2) 6 { 7 //数组型 8 /* int i = 0; 9 while(s1[i] != '\0') { 10 i++; 11 } 12 int j = 0; 13 while(s2[j] != '\0') { 14 s1[i] = s2[j]; 1

C语言编写一个&#39;*&#39;金字塔的程序

olj3xg踩系凭珊氏菲<http://weibo.com/LXzpRp/230927982968498303012864> 8e8pxe栏胸俾侔善胶<http://weibo.com/20180414pp/230927983255722881978368> e46952阉友河痹敲呕<http://weibo.com/keMXfnmp/230927983173935224852480> 8fpln0计孪甘摆谱匕<http://weibo.com/20180414p

C语言 编写一个函数,用递归方式求最大公约数。

编写一个函数,传入a,b两个int类型的变量,返回两个值的最大公约数.利用递归方式实现. #include <stdio.h> int gcd(int a,int b) { int tmp; if(a==0 || b==0) return 0; if(a<b) { tmp=a; a=b; b=tmp; } if(a%b==0) return b; else return gcd(b,a%b); } int main() { int num; num=gcd(12,4); printf(&

C语言 编写一个函数reverse_string(char * string)(递归实现) 实现:将参数字符串中的字符反向排列

编写一个函数reverse_string(char * string)(递归实现) 实现:将参数字符串中的字符反向排列. #include <stdio.h> #include <string.h> #include <assert.h> int reverse_string(char * str) { assert(str); int len=strlen(str); char *ch=str+len-1; while(len>1) { char tmp=*st