C语言菜鸟求助,关于C语言链表的一个问题,显示有四个错误,一个警告,哪里错了啊?怎么改?

作者&投稿:慕昂 (若有异议请与网页底部的电邮联系)
C语言中%c,%s分别代表什么意思?~

%c在C语言中代表字符型格式符。
%s在C语言中代表字符串型格式符。
%c和%s一般用在printf、sprintf等字符串格式化函数中,用于决定格式化参数的数据类型。如printf("%s", a)会将变量a作为字符串类型进行格式化。
printf()函数是格式化输出函数, 一般用于向标准输出设备按规定格式输出信息。
printf()函数的调用格式为: printf("", )。
格式输出,它是c语言中产生格式化输出的函数(在 stdio.h 中定义)。用于向终端(显示器、控制台等)输出字符。格式控制由要输出的文字和数据格式说明组成。要输出的文字除了可以使用字母、数字、空格和一些数字符号以外,还可以使用一些转义字符表示特殊的含义。

扩展资料:
C语言中所有格式化类型的定义:
1、%d/i
接受整数值并将它表示为有符号的十进制整数,i是老式写法
2、%o
无符号8进制整数(不输出前缀0)
3、%u
无符号10进制整数
4、%x/X
无符号16进制整数,x对应的是abcdef,X对应的是ABCDEF(不输出前缀0x)
5、%f(lf)
单精度浮点数和双精度浮点数用f(lf在C99开始加入标准,意思和f相同)
6、%e/E
科学计数法表示的数,此处"e"的大小写代表在输出时用的“e”的大小写
7、%g/G
有效位数,如:%.8g表示单精度浮点数保留8位有效数字。
8、%c
字符型。可以把输入的数字按照ASCII码相应转换为对应的字符
9、%s/S
字符串。输出字符串中的字符直至字符串中的空字符(字符串以'\0‘结尾,这个'\0'即空字符)
10、%p
以16进制形式输出指针
11、%n
到此字符之前为止,一共输出的字符个数,不输出文本
12、%%
不进行转换,输出字符‘%’(百分号)本身
13、%m
打印errno值对应的出错内容,(例:printf("%m
");)
参考资料来源:百度百科-printf

#include<stdio.h>
#include<malloc.h>
#include<stdlib.h>
#include<math.h>

# define MAXSIZE 100
typedef struct{
    int *top;        //栈顶指针
    int *base;        //栈底指针
    int stacksize;    //栈容量
}SqStack;
void InitStack( SqStack &S );        //ERROR  一、函数名写错了,二、函数声明与函数定义不符

void main(){
    SqStack S;
    InitStack(S);
    system("pause");
}
void InitStack(SqStack &S){ //构造一个空栈
    S.base=(int *)malloc(MAXSIZE*sizeof(int));
    if(!S.base) exit(0); //存储空间失败
    S.top=S.base;
    S.stacksize=MAXSIZE;
}


我检查了下面网友的代码,这应该是没有问题的,问题可能是你的编译器,我给你把这段代码改成用标准c写的,再编译不通过可没办法了。

#include<stdio.h>
#include<malloc.h>
#include<stdlib.h>
#include<math.h>

# define MAXSIZE 100
typedef struct{
    int *top;        //栈顶指针
    int *base;        //栈底指针
    int stacksize;    //栈容量
}SqStack;
void InitStack( SqStack *S );

int main(){
    SqStack S;
    InitStack(&S);
    free(S.base);
    system("pause");
}
void InitStack(SqStack *S){ //构造空栈
    S->base=(int *)malloc(MAXSIZE*sizeof(int));
    if(!S->base) exit(0); //存储空间失败
    S->top=S->base;
    S->stacksize=MAXSIZE;
}



C语言 一道关于简单的全局变量题目~菜鸟求助~
全局变量在每次值改变之后其值是保持不变的,语句 b=fun(&a[i]+b);应该是b=fun(&a[i])+b;这样的吧,现在给你解释一下 第一次i=2,也就是调用fun(&a[2]),在fun中就是b=3+2=5,注意,这时b等于5,因为b是全局变量,因此b=5会一直保持不变。然后反回调用处b=fun(&a[2])+b;...

C语言菜鸟求助,这个程序思路可以吗?有哪些需要修改的地方? 求输入的10...
恩,你的思想当然是对的了,只不过可能练得比较少,有一些错误罢了。1、for里面是赋值的,为什么全都赋值给了&a,要知道a只是表示a[0]而已,正确的应该是&a[i]for(i=0;i<=9;i++)scanf("%l",&a);2、没有看到vd的实现,而且你这种调用方法应该编译不过吧?float vd();声明,调用却是vd(...

C语言编程菜鸟求助,谢谢
if (a=2)这里改为if(a==2)就行了,因为a=2每次都可以赋值成功那就是为真,才会出现输入不是2也能通过,理解?

C语言菜鸟求助
就是求输入的数的累加和吗?写成这样子就行了。include<stdio.h> void main(){ int n,i,y,k;scanf("%d\\n",&n);k=0;for(i=0;i<n;i++){ scanf("%d",&y);k=k+y;} printf("%d\\n",k);}

易语言菜鸟的求助!
这就像是,数据库里面有N条的代码,楼主在按钮2子程序里面什么也不输入,系统肯定不知道楼主想要那条代码,也就不知道执行什么!同样!楼主不在按钮2子程序里面写上楼主自己创造的代码的情况下,他同样也不会执行【取pid命令】如果我看的没错的话,楼主是看的【易语言觅风视频吧!我如果记得还没错的...

初学菜鸟C语言求助
include <stdio.h>\/\/没有必要 \/\/#include <math.h> int main(){ int a; float b; printf("..."); \/\/ " "的范围 scanf("%d", &a); \/\/ 另,这是华氏转摄氏的公式 b = (a-32) \/ 1.8; \/\/ 单精度浮点数用float printf("%.1f\\n",...

菜鸟求助 C语言链表工具指针的释放
你使用的 C 开发平台?在 C++ 中 new 和 delete 都定义成了操作符 操作符重载 的声明与一般函数不同 如果要和C++兼容还是使用其他字 比如 New 和 Delete void free(void * ptr) 是 stdlib.h 中定义的标准函数,与 void * calloc(size_t nmemb,size_t size);void * malloc(size_t size);...

菜鸟求助C语言啊...关于ZigBee的程序 各种看不懂 麻烦各位大神解释一...
我不知道你这几个#是什么意思。但是这里关键是三目运算符 ?:例如:a>b?a:b 这句话的意思是a如果大于b则输出a,否则输出b。所以,如果T##timer##CTL = (val) 成立的话,要输出T##timer##CTL | 0X10 ,否则输出T##timer##CTL&~0X10 ...

C语言完全菜鸟求助!!!
include <stdio.h> void main (){ int i,j,count,remainder;for (i=3;i<=100;i++){ count=0;for (j=1;j<=i;j++){ remainder=i%j;if (remainder!=0)count=count+1;} if (count==i-2)\/\/错误在这,你应该是判断count的值和i-2的值是否相等,但你写成了count=i-2,printf("...

菜鸟求助:一个关于单片机跳转指令的简单问题
1、问题的关键是你要知道DJNZ的作用是什么,DJNZ是减1不为0跳转指令,也就是说执行完DJNZ后寄存器里面的数不为0的话是不会向下执行 2、因为这里是要加8次,当执行DJNZ R3后,若R3里的数不为0的话说明还没加8次,那么就需要继续累加,所以这里要跳到累加的前面去 3、你这里用到INC RO 指令,...

雁山区14724996722: 大一c语言菜鸟,要用链表,不会建立;求助. -
线促盐酸: 建立链表就那么几步,套用即可要有三个结构体的指针,一个头head,一个申请空间用pr,一个指向链表的尾部pf1、申请空间,用pr指向这个节点,2、next=NULL,这个必须最好3、输入数据,这个不用多说吧4、判断是否为第一个节点5、如...

雁山区14724996722: C语言里面关于链表的一个函数 -
线促盐酸: 你的代码是错的,这是尾插法建立链表的程序 head=(NODE*)malloc(sizeof(NODE)); q=head; //申请一个头结点 这是一个带头结点的链表 for(i=1;i { p=(NODE*)malloc(sizeof(NODE)); printf("Enter a element\n"); q->next=p; //这里应该是q->next 表示将新申请的结点p加到原表尾 q=p; //新结点p成为新的表尾 }

雁山区14724996722: 关于C语言链表的操作实例 -
线促盐酸: c语言里面的链表是一种数据结构 是一种线形的存储结构 链表和数组一样,也是将一组同类型的数据组织在一起的一种数据结构 不同的是 数组采用的是顺序存储,依靠数组的首地址和元素的相对地址(下标)来实现访问. 优点是访问方便快捷,而缺点是数组是静态的,不利于实现元素的动态增减. 而链表采用的是离散存储,依靠节点间的指向下一个节点的指针来实现访问. 其优缺点和数组相反 链表里可以有不同种类型数据

雁山区14724996722: 一个关于c语言链表的问题!~1求教!! -
线促盐酸: /*原来的程序上就只有一点点小错误,都改过来了,详见注释 在VC6下调试通过,可以输入学生编号和成绩,当编号为0时 结束,据此用尾插法创建链表.然后依次打印出各个学生的 学号和姓名.*/#include <stdio.h>#include <stdlib.h>#define ...

雁山区14724996722: 在C语言中,什么是链表呀? -
线促盐酸: 链表由一系列结点(链表中每一个元素称为结点)组成,结点可以在运行时动态生成.每个结点包括两个部分:一个是存储数据元素的数据域,另一个是存储下一个结点地址的指针域. 相比于线性表顺序结构,操作复杂.由于不必须按顺序存储,...

雁山区14724996722: C语言链表的使用方法 -
线促盐酸: 下面的程序是单链表的建立与输出,都有详细的注释,相信你能看的懂 但要想学习链表必须得掌握了一定的C语言基础 下面这个链表的作用是建立5个结点的单链表,5个结点的值输入以后,依次输出各个结点的值#include<stdio.h>#include<...

雁山区14724996722: 初学者弱弱的问一个C语言链表问题! -
线促盐酸: 当然可以了但要注意的这些函数的返回值类型都是(struct list *),是指针类型,别的跟其它函数完全一样.

雁山区14724996722: 一道C语言有关链表的简单问题 -
线促盐酸: 以下程序完全用C写的,希望能够满足你的要求,如果需要一边插入一边排序,可以参照插入排序的代码自行编写一个.当然,如果用C++,可以精简一些#include <stdio.h>#include <stdlib.h>#include <malloc.h>/*微机版本可能需要加上这个头文...

雁山区14724996722: c语言中链表的概念和简单的实现 -
线促盐酸: 链表概述 链表是一种常见的重要的数据结构.它是动态地进行存储分配的一种结构.它可以根据需要开辟内存单元.链表有一个“头指针”变量,以head表示,它存放一个地址.该地址指向一个元素.链表中每一个元素称为“结点”,每个结...

雁山区14724996722: 请教两道C语言程序!关于链表的:1用函数完成单向链表的建立、输入
线促盐酸: #include"stdio.h" #include"malloc.h" #define len sizeof(struct price) struct price {int num; int num2; struct price *next; }; struct price lista,listb; int n,sum=0; void main() ...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网