#include <stdio.h>
#include <malloc.h>
#define NULL 0
#define LEN sizeof(struct nobe)
struct nobe
{
int data;
struct nobe * next;
};
int n;
struct nobe * creat(void)
{struct nobe * head;
struct nobe *p1,*p2;
n=0;
p1=p2=(struct nobe *) malloc(LEN);
scanf("%3d",&p1->data);
head=NULL;
while(p1->data!=0)
{n=n+1;
if(n==1) head=p1;
else p2->next=p1;
p2=p1;
p1=(struct nobe *) malloc(LEN);
scanf("%3d",&p1->data);
}
p2->next=NULL;
return(head);
}
void print(struct nobe * head)
{
struct nobe *p;
printf("\nNow,These %d records are:\n",n);
p=head;
if(head!=NULL)
do
{printf("%3d",p->data);
p=p->next;
}while(p!=NULL);
}
struct nobe *delete(struct nobe *head,int t)
{int i=1;
struct nobe *p1,*p2;
if(head==NULL) {printf("\nlist null!\n");return head;}
p1=head;
while((i<t)&&p1->next!=NULL)
{p2=p1;p1=p1->next;i++;}
if(i==t)
{if(p1==head) head=p1->next;
else p2->next=p1->next;
printf("delete %dth data\n",t);}
else printf("Not exist the data!\n");
return(head);
}
struct nobe *insert(struct nobe *head,struct nobe *num,int m)
{struct nobe *p0,*p1,*p2;
int i=1;
p1=head;
p0=num;
if(head==NULL)
{head=p0;p0->next=NULL;}
else
{while (i!=m)
p2=p1;
p1=p1->next;
i++;}
if(i==m)
{if(head==p1) head=p0;
else p2->next=p0;
p0->next=p1;}
else
{p1->next=p0;p0->next=NULL;}
return(head);
}
void main()
{struct nobe *head,num;
int del_num,in_num;
printf("input records:\n");
head=creat();
print(head);
printf("\ninput the deleted order:\n");
scanf("%3d",&del_num);
head=delete(head,del_num);
print(head);
printf("\ninput the insert record:\n");
scanf("%d %d",&num.data,&in_num);
head=insert(head,&num,in_num);
print(head);
}
为什么 检查不出问题,但最后的head=insert(head,&num,in_num); print(head);不运行?
要怎么办呢?谢谢 刚刚在VC里面试了一下,编译时没有错误,组建时出了好几个错误,谢谢
--------------------Configuration: zcyww - Win32 Debug--------------------
Compiling...
zcyww.cpp
d:\zcyww.cpp(44) : error C2059: syntax error : 'delete'
d:\zcyww.cpp(45) : error C2143: syntax error : missing ';' before '{'
d:\zcyww.cpp(45) : error C2447: missing function header (old-style formal list?)
d:\zcyww.cpp(116) : error C2541: delete : cannot delete objects that are not pointers
执行 cl.exe 时出错.
zcyww.obj - 1 error(s), 0 warning(s)
不懂耶,我在VC里新建文件时,那上面是C++ source file,该成.c不是全乱了吗?
而且之前,别的同学运行过 出来啊
那干嘛在TC里运行也有错呢
c语言常见问题有哪些
1、书写标识符时,忽略了大小写字母的区别。2、忽略了变量的类型,进行了不合法的运算。3、将字符常量与字符串常量混淆。4、忽略了等号与双等号的区别。5、忘记加分号。6、输入变量时忘记加地址运算符。7、输入数据的方式与要求不符。8、输入字符的格式与要求不一致。9、输入输出的数据类型与所用格式...
大学搞懂这8个C语言问题你也能进大厂
1.#define 语法的基本知识(例如:不能以分号结束,括号的使用,等等)2.懂得预处理器将为你计算常数表达式的值,因此,直接写出你是如何计算一年中有多少秒而不是计算出实际的值,是更清晰而没有代价的。3意识到这个表达式将使一个16位机的整型数溢出-因此要用到长整型符号L,告诉编译器这个常数是的长...
C语言的运行出现不了的问题是什么问题??
环境问题:代码在不同的操作系统、编译器或硬件平台上可能存在差异,导致代码无法正常运行。可以检查编译器和操作系统的兼容性,或在特定的环境中运行代码。逻辑问题:代码逻辑存在问题,导致代码无法正确执行。可以检查代码逻辑是否正确,是否存在死循环、递归深度过大等问题。综上,C语言代码运行不出现象可能...
C语言编程常见十大面试问题(内附答案)
C语言编程面试中常遇到的十大问题,下面就逐一解答:1. 变量\/函数声明与定义的区别:变量\/函数声明告知程序它们的存在,如类型和参数信息,但不分配内存。定义则同时包含声明并为变量分配内存,定义是声明的扩展或细化操作。2. C中的存储类说明符:主要有auto、register、static和extern,它们分别定义了变量...
c语言常见问题有哪些?
但C语言中,“=”是赋值运算符,“==”是关系运算符。如:if (a==3)a=b;前者是进行比较,a是否和3相等,后者表示如果a和3相等,把b值赋给a。由于习惯问题,初学者往往会犯这样的错误。5.忘记加分号。分号是C语句中不可缺少的一部分,语句末尾必须有分号。a=1 b=2 编译时,编译程序在“a=...
计算机程序c语言面试常见问题
c语言作为计算机程序设计语言,是考察软件工程师应聘者技术能力的关键。计算机程序c语言面试常见问题,我们来看看。c语言 面试题 精选(笔试)单选题部分 1、C语言程序的基本单位是___A.语句 B.函数 C.程序行 D.字符 答案:B 2、C语言程序由()组成 A.子程序 B.过程 C.函数 D.主程序段程序 ...
C语言问题编程问题?
int main(){ int i,j,n=-1;float scores[30],sum=0,temp;printf("请输入n的值(0~30):");while(n<0 || n>30) scanf("%d",&n);if(!n) return 0;for(i=0;i<n;scanf("%f",&scores[i]),sum+=scores[i],i++)printf("请输入学生%d分数:",i+1);printf("%d名学生的...
C语言问题:概率问题, C++怎么算?
概率C上3下5是一个组合,解答过程如下:组合计算公式如下:根据组合计算公式可得:C(5,3)=5!\/[3!×(5-3)!]其中:5!=5×4×3×2×1=120。3!×(5-3)!=3!×2!=(3×2×1)×(2×1)=12。故:C(5,3)=10。意思是从m个不同元素中,任取n(n≤m)个元素并成一组,...
求c语言一些常见问题,
但C语言中,“=”是赋值运算符,“==”是关系运算符。如:if (a==3) a=b;前者是进行比较,a是否和3相等,后者表示如果a和3相等,把b值赋给a。由于习惯问题,初学者往往会犯这样的错误。5.忘记加分号。分号是C语句中不可缺少的一部分,语句末尾必须有分号。a=1 b=2 编译时,编译程序在“...
c语言面试经常问到的问题有哪些?
c语言面试经常问到的问题有:1、C语言的主要特征是什么?C是一种过程语言。C语言的主要功能包括对内存的低级访问,简单的关键字集和简洁的样式。这些功能使其适用于诸如操作系统或编译器开发之类的系统编程。2、i ++和++i有什么区别?1)表达式“i ++”返回旧值,然后递增i。表达式++i递增该值...