c程序菜鸟问题
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c程序菜鸟问题相关的知识,希望对你有一定的参考价值。
//#define i 9
#include <stdio.h>
float compa(float num[],int i)
/* float temp=num[i];
for(i--;i>=0;i--)
temp=(temp>num[i])?temp:num[i];
*/
/* float temp=*num;
for(i--;i>=1;i--)
num++;
temp=(temp>*num)?temp:*num;
*/
/* float temp=num[0];
for(int j=1;j<=i;j++)
if(temp<num[j])
temp=num[j];
*/
float temp=num[0];
for(int j=1;j<=i;j++)
temp=(temp>num[j])?temp:num[j];
//上面几种方法,结果都是一样,内存出错
return temp;
void input(float num[],int i)
printf("请输入10个数,每输入一个数按一次回车键:\n");
for(;i>=0;i--)
scanf("%f",num++);
int main()
/* float num[9],temp;
int i;
printf("请输入10个数,每输入一个数按一次回车键:\n");
for(i=0;i<=9;i++)
scanf("%f",&num[i]);
for(i=1;i<=9;i++)
temp=temp>num[i]?temp:num[i];
printf("The max of ten is: %.2f\n",temp);
*/ //全部放在main中实现没出现问题
const int i=9;
float num[i];
input(num,i);
/* for(int j=1;j<=9;j++)
*num=(*num>num[j])?*num:num[j];
*/ // 1 比较函数放在main中实现没问题
*num=compa(num,i); //注释掉这个,换成上面的“1”就没问题。
printf("The max of ten is: %.2f\n",*num);
return 0;
输入10个数,输出最大数。
如果代码全部在main中实现没出现问题,但如果分开两个小函数在外面实现,计算结果虽然没错,但完成后出现内存错误,原因不明,想了一个上午没想出来,求各位有空上机调试调试,帮忙指出错误。
#include <stdio.h>
float compa(float num[],int i)
/* float temp=num[i];
for(i--;i>=0;i--)
temp=(temp>num[i])?temp:num[i];
*/
/* float temp=*num;
for(i--;i>=1;i--)
num++;
temp=(temp>*num)?temp:*num;
*/
/* float temp=num[0];
for(int j=1;j<=i;j++)
if(temp<num[j])
temp=num[j];
*/
float temp=num[0];
for(int j=1;j<i;j++)
temp=(temp>num[j])?temp:num[j];
//上面几种方法,结果都是一样,内存出错
return temp;
void input(float num[],int i)
int j = i - 1;
printf("请输入10个数,每输入一个数按一次回车键:\n");
for(;j>=0;j--)
scanf("%f",num+j);
int main()
/* float num[9],temp;
int i;
printf("请输入10个数,每输入一个数按一次回车键:\n");
for(i=0;i<=9;i++)
scanf("%f",&num[i]);
for(i=1;i<=9;i++)
temp=temp>num[i]?temp:num[i];
printf("The max of ten is: %.2f\n",temp);
*/ //全部放在main中实现没出现问题
const int i=10;
float num[i];
input(num,i);
/* for(int j=1;j<=9;j++)
*num=(*num>num[j])?*num:num[j];
*/ // 1 比较函数放在main中实现没问题
*num=compa(num,i); //注释掉这个,换成上面的“1”就没问题。
printf("The max of ten is: %.2f\n",*num);
return 0;
这是改动后的程序,你自己认真研究一下。
问题不少,主要有:要想输入10个数,i应该定义成10,即double a[10];
还有不要int num[10]; 输入的时候用num++,num是个固定地址,是不能变的。
再就是for(int j=1;j<=i;j++) 不对,因为i=9则你定义的是double a[9],但实际上只到a[8],j==i时 a[9]是错误的。
其余改动的地方你自己看一下吧。祝好运。另外学会调试,比如断点,但不运行什么的是学编程很重要的,有空自己研究一下。能花一上午来想问题不简单,祝学习愉快。 参考技术A 我试了下,完全没有问题啊。不知道你到底遇到什么问题?
Lua菜鸟①初识Lua
简介
Lua 是一种轻量小巧的脚本语言,用标准C语言编写并以源代码形式开放, 其设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能。
特性
轻量级: 它用标准C语言编写并以源代码形式开放,编译后仅仅一百余K,可以很方便的嵌入别的程序里。
可扩展: Lua提供了非常易于使用的扩展接口和机制:由宿主语言(通常是C或C++)提供这些功能,Lua可以使用它们,就像是本来就内置的功能一样。
其它特性:
支持面向过程编程和函数式编程;
自动内存管理;只提供了一种通用类型的表(table),用它可以实现数组,哈希表,集合,对象;
语言内置模式匹配;闭包(closure);函数也可以看做一个值;提供多线程(协同进程,并非操作系统所支持的线程)支持;
通过闭包和table可以很方便地支持面向对象编程所需要的一些关键机制,比如数据抽象,虚函数,继承和重载等。
应用
游戏开发(我要用来开发外挂!!!)
独立应用脚本
Web 应用脚本
扩展和数据库插件如:MySQL Proxy 和 MySQL WorkBench
安全系统,如入侵检测系统
以下使用window环境,适合我这样的菜鸟:
第一个Lua程序,来体会一下脚本编程
print("Hello World!")
环境配置
大家可以在Lua的官网下载window系统所需要的编译器,然后配置环境即可
将lua命令加入到path中即可,这样就可以利用VS Code直接运行
然后就是给世界打招呼了
菜鸟终于可以写Lua了,明天继续!
以上是关于c程序菜鸟问题的主要内容,如果未能解决你的问题,请参考以下文章
菜鸟攻略–C语言多文件编程初探:使用 gcc 手动编译多文件 C 程序