c语言编写的小游戏的疑问

C语言中的疑问1_百度知道
C语言中的疑问1
n list is null &#92,*p,b;while((num.score=85;&#92.next=&b;
struct student *
{printf(&quot.5;}p1=
printf(&next=p1-& struct student *next! \malloc,long num,该怎么改,调试不成功啊;n&
} #define NULL 0 {float score.next=&c;%ld not been found.h&gt,p-&;} if(num==p1-&gt,%5.num=99103;num) {if(p1==head) head=p1-&
else printf(&}
c!=NULL),c;n&quot.next=NULL;} main() {struct student {long num,num);;delete,int n){struct student *p1;p1=p1-&struct student *del(struct student *num)&&(p1-&
float socre?系统提示#define NULL 0的下一行出现了语法错误;
p=head.num=99101;
struct student *
while(p.score=90;
return(head);
else p2-&if(head==NULL){printf(&b;
};next,*p2.score=89;n&quot:%ld\
}请问这道程序哪里出现错误!=NULL)){p2=p1;);score)!=p1-&gt,num),p-&a;.num=99107;%ld.1f&quot#include &lt
提问者采纳
h.h&gt#define NULL 0的下一行 {float score:1; struct student *next. 改成 #include &lt. 但这并不解决任何问题, 所以大家不太愿意回答.其他是否还有错误请再仔细调试.h: 此程序不需要malloc,再正确引用. 总之感觉太粗心的错误较多, 后面就无需#define NULL 0了.3;stdio, 反而是需要 }. struct student { 改为 #include &lt. 必须先正确定义.记住, 后面引用的是 float score, 可能这是你添加 {float score}的原因, 标志循环体结束的}应该放在while之前.另建议.h&gt.h&gt. #include &malloc. main()中的do循环;原因,反而增添了一句错误.4.2;: 在出错语句后面追加定义是无济于事的;stdio, 因为 NULL 是在其中定义的; 中定义的socre. 删掉它;} 不知为什么要加这样错误的一行
提问者评价
谢谢你的回答
其他类似问题
为您推荐:
c语言的相关知识
其他1条回答
还有如果是.c文件所有的定义必须放在文件头部
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁找零钱问题(C语言实现)――贪心算法应用(1)
在现实生活中,经常遇到找零问题,假设有数目不限的面值为20,10,5,1的硬币。
给出需要找零数,求出找零方案,要求:使用数目最少的硬币。
对于此类问题,贪心算法采取的方式是找钱时,总是选取可供找钱的硬币的最大值。比如,需要找钱数为25时,找钱方式为20+5,而不是10+10+5。
下面是C语言实现(DEV c++4.9.9.2运行通过)
#include&stdio.h&&&
void greedyMoney(int m[],int k,int n);&
int main(void)&
& int money[] = {20,10,5,1};&
& k = sizeof(money)/sizeof(money[0]);&&
& greedyMoney(money,k,25);&
& system(&PAUSE&);&
*& m[]:存放可供找零的面值,降序排列&
*&& k:可供找零的面值种类数&
*&& n:需要找零数&
void greedyMoney(int m[],int k,int n)&
&& for(i=0;i&k;i++)&
&&&&& while(n&=m[i] && n&0)&
&&&&&&&&& printf(&%d.&,m[i]);&&
&&&&&&&&& n = n-m[i];&
&& printf(&\n&);&
#include&stdio.h&
void greedyMoney(int m[],int k,int n);
int main(void)
& int money[] = {20,10,5,1};
& k = sizeof(money)/sizeof(money[0]);
& greedyMoney(money,k,25);
& system(&PAUSE&);
*& m[]:存放可供找零的面值,降序排列
*&& k:可供找零的面值种类数
*&& n:需要找零数
void greedyMoney(int m[],int k,int n)
&& for(i=0;i&k;i++)
&&&&& while(n&=m[i] && n&0)
&&&&&&&&& printf(&%d.&,m[i]);
&&&&&&&&& n = n-m[i];
&& printf(&\n&);
需要说明的是,在一些情况下,找零钱问题使用贪心算法并不能得到整体最优解,其结果可能只是最优解的很好近似。
比如,如果提供找零的面值是11,5,1,找零15。
使用贪心算法找零方式为11+1+1+1+1,需要五枚硬币
而最优解为5+5+5,只需要3枚硬币。
您对本文章有什么意见或着疑问吗?请到您的关注和建议是我们前行的参考和动力&&
您的浏览器不支持嵌入式框架,或者当前配置为不显示嵌入式框架。c语言疑问_百度知道
pi=(int*)malloc(sizeof(int))sizeof后面的int是做什么用的?强制转换运算(int*)后的malloc(sizeof(int))为什么没有用括号括起来,会不会造成强制转换运算的错误
提问者采纳
因为所有的指针其实就是一个整数int,int也好,最多一个编译器报警?答.,会不会造成强制转换运算的错误答,为什么32位机最大的内存只能做到4G,int存在的意义就在于此.。不写强转一般也行.都不会产生数据丢失,32位机占4字节.?强制转换运算(int*)后的malloc(sizeof(int))为什么没有用括号括起来:表示一个int型数据占用的字节数,char*也好。相当于给malloc函数的返回值做了强制类型转换,和操作系统相关:不会,int*也好,你用void*也好,64位机占8字节。malloc的返回值就是一个指针。另外给你出个小问题sizeof后面的int是做什么用的
提问者评价
其他类似问题
为指针pi分配空间大小为sizeof(int)个字节的空间,一个int类型值 32位,malloc是动态分配内存的。
为您推荐:
其他2条回答
有些是4个字节sizeof(int) 表示一个整形所占内存的大小,有些是2个字节,因为不同的平台,
malloc本来就是一个函数,没有必要再加括号,int的大小是不同的!不会造成强制转换错误,望采纳,还有一些是8个,返回值是一段内存空间,这里是为了方便移植
sizeof后面的int表明你要分配多大的空间,你这里分配了一个int空间大小的地址,malloc是一个函数,这里加不加括号的效果都是一样的
c语言的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁}

我要回帖

更多关于 简单的c语言程序 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信