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中实现没出现问题,但如果分开两个小函数在外面实现,计算结果虽然没错,但完成后出现内存错误,原因不明,想了一个上午没想出来,求各位有空上机调试调试,帮忙指出错误。

//#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)

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语言菜鸟问题:

菜鸟攻略–C语言多文件编程初探:使用 gcc 手动编译多文件 C 程序

菜鸟攻略–C语言多文件编程初探:使用 gcc 手动编译多文件 C 程序

菜鸟问题:关于Java的第一个程序HelloWorld

c语言编程做出程序后闪退是怎么回事?求大神 本人菜鸟!

C语言关于search 的问题。本人是菜鸟,方便的话私聊。