Ⅰ c语言二维数组菜鸟问题,请大神帮忙看看哪里错了
你这个错的太多了,函数传递的参数不对,也没有返回值如highest函数,没有返回值,函数参数传递的也没有意义,给h赋初值是也是不恰当的
stu-aver函数类型定义错误和没有传递参数保存数据(如果不传递就要用指针来做了),s赋初值的位置也是不恰当的
部分函数修改如下,不懂再问
voidhighest()//这里的参数传递的没有意义,你下面调用函数也没传递参数
{
floath;
inta,b;
h=0;//应赋初值为零,不然不好比较,会出现后面a、b错误
for(i=0;i<S1;i++)
{
for(j=0;j<S2;j++)
{
if(h<score[i][j])
{
h=score[i][j];
a=i+1;
b=j+1;
}
}
}
printf("%f%d%d ",h,a,b);
}
voidstu_aver(floatc[3])//一个学生平均分,这里需要传递数组参数保存数据
{
for(i=0;i<3;i++)
{
floats=0;//s每次循环过后都要重新初始化,不然会和前面的叠加
for(j=0;j<3;j++)
{
s=s+score[i][j];
c[i]=s/3;//这里可以放在第二层for外面,减少运算量,但放这里也没事
}
}
}
intmain()
{
floath;
intk;
input();
printf(" ");
highest();//你这里没有进行参数传递,所以上面的函数也不用参数
floatc[3];
stu_aver(c);//传递定义的数组是必须的
for(k=0;k<3;k++)
{
printf("%f ",c[k]);
}
printf(" ");
return0;
}
Ⅱ 急急急 c语言菜鸟一只 问个数组问题 谢了
for(i=0;i<10;i++)
a[i]=i;
这两句是给数组a[]进行初始化;内容是0,1,2,……9
-------------------------------------------------------------------------------------------------
for(i=0;i<3;i++)
p[i]=a[i*(i+1)];
这两句是给数组p[]进行初始化;内容是p[0]=a[0];p[1]=a[2];p[2]=a[6];
------------------------------------------------------------------------------------------------
for(i=0;i<3;i++)
k+=p[i]*2;
这两句等于 k原始值是5;
i等于0时;k=k+0*2=5;
i等于1时;k=k+2*2=9;
i等于2时;k=k+6*2=21;
Ⅲ 一个菜鸟的问题:C语言 找出数组里的最大值
具体实现方法可以参考如下程序:
#include<stdio.h>
void main()
{
double a[] = {3, 4.2, 4, 5.3, 1, 0.4, 5};
double *max=(double *)malloc(sizeof(double)); // 最大值指针
double *min=(double *)malloc(sizeof(double)); // 最小值指针
int i;
*max = a[0]; // 初始化最大值
*min = a[0]; // 初始化最小值
for(i=1; i<7; i++) // 7表示数组a的长度
{
if(*max<a[i])
*max = a[i]; // 保存最大值
if(*min>a[i])
*min = a[i]; // 保存最小值
}
}
Ⅳ 菜鸟求问关于C语言二维数组
代码如下:
#include<stdio.h>
intmain(){
charweak_data[7][4]={
{"MON"},
{"TUE"},
{"WED"},
{"THU"},
{"FRI"},
{"SAT"},
{"SUN"}
};
printf("%s ",weak_data[0]);
printf("%s ",weak_data[5]);
getchar();
return0;
}
运行结果如下:
希望对你有帮助~
Ⅳ c语言中关于数组的简单菜鸟问题
1、字符串中以'\0'为结束符,你的str2中最后没有结束符,所以会出现你所说的问题 解决方法 1)、可以在str2[13] = {0};定义时初始化为全0 2)、或者在执行conv(str1,str2);后str2[12] = '\0'; 2、你将str2声明成了char类型,与cnect中所需要的类型不匹配··
Ⅵ 菜鸟C语言数组问题,困惑了……
#include<stdio.h>
int main(void)
{
int n,i,j,index=0;
int a[10];
//clrscr();
printf("Enter n:");
scanf("%d",&n);
printf("Enter %d numbers:",n);
for(i=0;i<n;i++)
scanf("%d",&a[i]);
/*for(i=0;i<n;i++)
for(j=i+1;j<n;j++)
if(a[i]>a[j]){
index=j;
i=j;
} */
for(i=1;i<n;i++)//用这个替换上面的for
if(a[index]>a[i])
index=i;
printf("The Smallest number is %d .\nAnd Index=%d.\n",a[index],index);
return 0;
}
Ⅶ C语言关于简单的数组中元素的运算,本人菜鸟新手,求高手指点。
这个就是叠加,先把1,0,1,0,1,0,1,0付给a的数组中,然后进行加法就是由第3项开始等于前两项之和; a[i]+=a[i-1]+a[i-2];就等同于{ a[i]=a[i]+(a[i-1]+a[i-2]); }
如第一次运算a[2]=a[2]+(a[1]+a[0])=1+(1+0)=2,再运算a[3]=a[3]+(a[2]+a[1])=0+(2+0)=2 a[4]=a[4]+(a[3]+a[2])=1+(2+2)=5 a[5]=a[5]+(a[4]+a[3])=0+5+2=7 a[6]=a[6]+(a[5]+a[4])=1+7+5=13 a[7]=a[7]+a[6]+a[5]=13+7+0=20,剩下的就是挨个输出了
虽然说有点乱,但是运行过程就是这样,努力加油阿!
Ⅷ 超级菜鸟求教,如何C语言中用数组输出你输入的一串数字
#include<stdio.h>
voidmain()
{
charstr[100];
gets(str);
puts(str);
}
Ⅸ 关于C语言中数组分配内存等问题!额,本人是菜鸟,被一C语言书上的话弄晕了! 如果我的问题有些怪,请见谅
1. 准确地说,局部变量是在该函数被调用的时候才会得到所分配的内存空间。但是该内存空间的分配形式是在编译的时候就确定了的。
2. char a[10]也会自动被初始化为10个'\0'字符。
3. 一般的数组都是静态数组。动态数组的申请方式一般为:
int *a=malloc(sizeof(int) * 10); // 这个语句申请了一个能容纳10个int的动态数组。
静态数组的意思是:数组的大小在程序编译完就确定了。动态数组的意思是:数组的大小要程序运行起来之后才知道。
比如 int a[10];那么它固定死了,就是10个元素大小。
但动态分配方式就不一定。比如:
int n;
....
int *a= malloc(sizeof(int)*n); //分配了一个动态数组。数组大小由n决定。
Ⅹ c语言数组的定义
C语言支持一维数组和多维数组。如果一个数组的所有元素都不是数组,那么该数组称为一维数组。
在C语言中使用数组必须先进行定义,一维数组的定义方式为:类型说明符; 数组名 ;[常量表达式]。
其中,类型说明符是任一种基本数据类型或构造数据类型。数组名是用户定义的数组标识符,方括号中的常量表达式表示数据元素的个数,也称为数组的长度。例如:
int a[10]; /* 说明整型数组a,有10个元素 */
float b[10], c[20]; /* 说明实型数组b,有10个元素,实型数组c,有20个元素 */
char ch[20]; /* 说明字符数组ch,有20个元素 */
对于数组类型说明应注意以下几点:
1、数组的类型实际上是指数组元素的取值类型。对于同一个数组,其所有元素的数据类型都是相同的。
2、数组名的书写规则应符合标识符的书写规定。
3、数组名不能与其它变量名相同。例如:
int a;
float a[10];
是错误的。
4、方括号中常量表达式表示数组元素的个数,如a[5]表示数组a有5个元素。但是其下标从0开始计算。因此5个元素分别为a[0], a[1], a[2], a[3], a[4]。
5、不能在方括号中用变量来表示元素的个数,但是可以是符号常数或常量表达式。例如:
#define FD 5
// ...
int a[3+2],b[7+FD];
是合法的。但是下述说明方式是错误的。
int n=5;
int a[n];
6、允许在同一个类型说明中,说明多个数组和多个变量。例如:
int a,b,c,d,k1[10],k2[20];
(10)菜鸟的c语言数组部分扩展阅读:
C语言是一门通用计算机编程语言,广泛应用于底层开发。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。
尽管C语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的C语言程序可在许多电脑平台上进行编译,甚至包含一些嵌入式处理器(单片机或称MCU)以及超级电脑等作业平台。
二十世纪八十年代,为了避免各开发厂商用的C语言语法产生差异,由美国国家标准局为C语言制定了一套完整的美国国家标准语法,称为ANSI C,作为C语言最初的标准。[1]目前2011年12月8日,国际标准化组织(ISO)和国际电工委员会(IEC)发布的C11标准是C语言的第三个官方标准,也是C语言的最新标准,该标准更好的支持了汉字函数名和汉字标识符,一定程度上实现了汉字编程。
C语言是一门面向过程的计算机编程语言,与C++,Java等面向对象的编程语言有所不同。
其编译器主要有Clang、GCC、WIN-TC、SUBLIME、MSVC、Turbo C等。