这个小程序错了,怎么该?

来源:百度知道 编辑:UC知道 时间:2024/06/08 15:44:43
main()
{float a[10]={1.2,3,5,9.6,0,-9,90,6,-3,8}
int i;
m=a[0];
for(i=1;i<+9;i++)
if (a[i]>m)m=a[i];
printf(“m=%f”,m);
}

--------------------Configuration: c7 - Win32 Debug--------------------
Compiling...
c7.cpp
E:\ccc\c7.cpp(3) : warning C4305: 'initializing' : truncation from 'const double' to 'float'
E:\ccc\c7.cpp(3) : warning C4305: 'initializing' : truncation from 'const double' to 'float'
E:\ccc\c7.cpp(5) : error C2065: 'm' : undeclared identifier
E:\ccc\c7.cpp(5) : warning C4244: '=' : conversion from 'float' to 'int', possible loss of data
E:\ccc\c7.cpp(7) : warning C4244: '=' : conversion from 'float' to 'int', possible loss of data
E:\ccc\c7.cpp(9) : warning C4508: 'main' : function should return a value; 'void'

#include"stdio.h"
void main() //函数要声明返回类型,如果没有返回值,就声明为‘void’,否则如果声明为‘int',则在结束前要返回一个整型值,如:return 0;
{
float a[10]={1.2f, 3, 5, 9.6f, 0, -9, 90, 6, -3, 8};
//小数默认为double类型,在小数后加一个'f'就会当它是浮点型,warning就可以被去掉了
//另外,句子最后漏了一个';'

int i;
float m; //这里要先声明,后面才能够使用

m = a[0];
for(i = 1; i <= 9; i++) //<= 写成 <+ 了,打字时小心些
if(a[i] > m)
m = a[i];
printf("m=%f", m);
}

第一、m没有定义
第二、i<+9? 应该是i<=9

第三 main后面 应该加上一个 return 或者是 在main前面加一个void

第四 没有头文件 加一个#include <stdio.h>

aleda已经回答的很详细了