分析一下这C语言个错误?

作者&投稿:豫肯 (若有异议请与网页底部的电邮联系)
C语言错误分析~

编译都通不过,何来执行?
46行(我不知道哪一行),=号左边的东西不能被赋值。

你的a声明二位char型数组做什么呢
这样改了 你对照下看看
#include
#include
int main()
{
int s(char *p);
char a[5];
int i;
for(i=0;i<5;i++)
scanf(" %c",&a[i]);
s(a);
for(i=0;i<5;i++)
printf(" %c",&a[i]);
return 0;
}
int s(char *p)
{
int i,j;
char *p1=p;
char c[100];
for(i=4;i>=1;i--)
for(j=0,p=p1;j<=i;j++,p++)
if(strcmp(p,p+1)>0)
{
strcpy(c,p);
strcpy(p,p+1);
strcpy(p+1,c);
}
return 0;
}

首先,上面的错误显示,是比较低级的错误,比如格式错误,函数名错了,缺少括号,分号什么的,以及用错变量,具体哪错了,从这里是看不出来的,所以你放源文件才行.
那么下面分析你的源文件.

#include <stdio.h>
int array[3][3]; //全局变量自动初始化为0.
void main ()
{ void convert(int array[][3]); //不要和{这个花括号在同一行输入代码.
int i,j; //所有变量要初始化,这是习惯,防止后面在未初始化前就使用而造成未知错误,比如段错误,那是很隐晦的错误,也许找到你头都大了才发现原来是没初始化就在使用变量.
printf(" 输入数组元素:\n");
for (i=0;i<3;i++)
for (j=0;j<3;j++)
scanf("%d",&array[i][j]); //这里,反括号和分号居然是全角的.所有符号都必须是半角的英文符号标点!!!!!
printf("\n 数组是:\n");
for(i=0;i<3;i++)
{ fori=0;i<3;j++) //没看到你的for后面少了个正括号吗?另外花括号同一行不要输入代码
rintf(%5d",array[i][j]); //printf 少了个p,编译器当然不认识rintf是什么函数了. 另外 "%5d" 你少了前引号!!
printf("\n");

}

convert(array);
printf("转置数组是:\n");
for (i=0;i<3;i++)
{ for(j=0;j<3;j++) //花括号同一行不要输入代码
printf("%5d",array[i][j]);
printf("\n");
}
}
void convert(int array [][3])
{ int i,j,t; //花括号同一行不要输入代码
for(i=0;i<3;i++)
for(j=i+1;j<3;j++)
{ t=array[i][j];
array[i][j]=array[j][i];
array[j][i]=t;

下面呢?没了?断尾?for循环还少个括号呢 convert函数还少个括号呢!
}
}
帮你填上.

最后,我建议你以后出问题,好好把英文看懂,学会自己去理解下错误.很多错误一看英文就知道的,而且你的源代码所有错误全部是格式,语法错误,这是最低级的错误,也是最容易自己解决的错误,虽然也是错误率最高的,对新手来说.

直接编译,直接运行
#include <stdio.h>
int array[3][3];
void convert(int array [3][3])
{ int i,j,t;
for(i=0;i<3;i++)
for(j=0;j<=(i/2);j++)//这里你看看,虽然我觉得你的也没问题
{
t=array[i][j];
array[i][j]=array[j][i];
array[j][i]=t;
}
}
int main ()
{
void convert(int array[3][3]);
int i,j;
printf(" 输入数组元素:\n");
for (i=0;i<3;i++)
for (j=0;j<3;j++)
scanf("%d",&array[i][j]);
printf("\n 数组是:\n");
for(i=0;i<3;i++)
{ for(j=0;j<3;j++)//这里j和i你写的是这样吧
printf("%5d",array[i][j]);
printf("\n");

}
convert(array);
printf("转置数组是:\n");
for (i=0;i<3;i++)
{
for(j=0;j<3;j++)
printf("%5d",array[i][j]);
printf("\n");
}
getch();
return 0;
}

从头到尾N处错误:
9:scanf("%d",&array[i][j]);
表面上是对的,但你仔细看你那()的右括号有什么问题?注意全半角!
12{ fori=0;i<3;j++)
fori是什么呢?少个 ( 吧!
13:rintf(%5d",array[i][j]);
你认为该是什么呢?printf("%5d",array[i][j]);
33,34:
你不感觉少了2个 } } 吧!!!

只是解决你的语法问题
其他的不帮你解决的!
你的程序不懂

没找出来

请问一下大佬们,这道C语言编程题我为什么错,还有这些监测点的划分依据是...
答:解释:C语言中一般int为32位,最大只能表示12的阶乘,超过12就会产生溢出,而题目中明确说明了数据会在double范围内,就是有可能超过int所表示范围。需要改为double类型。监测点划分依据:Cmn表示从n中选m个有多少情况,通过数学分析我们知道,当m=n/2时取得最大值。因为我们有公式只要m1+m2=n那Cm1n...

C语言中错误的整型变量新人麻烦详细说明一下谢谢
答:当然如果你要打个句子,又没用汉语,又想让人看懂,不被打,就可以使用空格做分隔符。举个栗子,例如你想打个英文“Hello world”结果你搞了个“Helloworld”,这是两个词,再多了,嗯那和乱码也就没有区别了。2. 变量 在了解完常量之后我们接下来就是了解一下C语言中的变量。在C语言中变量其实...

编程c语言总是有一个错误
答:执行 cl.exe 时出错这种错误一般是由于环境变量设置出错导致的,参见网上的各种教程 http://blog.csdn.net/hongloumengyan/article/details/6112272 实在不会就重装一遍,安装在默认路径里一般就不会有这个问题了

请教C语言高手,请问这个C语言哪里出现了错误?? 帮手改正一下 谢谢
答:有三处错误:1.size=3/4*pi*radius*radius*radius);这一句中有两个错误:(1)3/4=0而不是你想象的0.75,两个整型相除还是为整型。可以改为3.0/4;(不过体积公式是三分之四吧不是四分之三吧,这个我不管我只给你纠正程序错误;)(2)语句末尾多了一个括号;2.printf(“area=%f\n”,...

高手帮我看一下c语言中的代码哪儿有问题?
答:[3] if (maxi) min=i; 判断条件不严密,如果i=101,输入有误但却同样满足max<i这个条件,这时max=101了。反之i<0时,min就会得到一个负值。[4] 在“h+=i;”之前没有条件限制,即使输入的是一个错误的数据也会用来累加;按照你的思路进行的修改:include<stdio.h> //#include<ctype.h> ...

c语言编程错误解析:下面是代码(跟上一个提问不一样),请问错在哪儿?为什 ...
答:第一个:pS = (double *)malloc(sizeof(double)*index);pS[NUM_P]是分配好内存的了,你定义的42,pS是常量,无法进行赋值操作。你需要重新定义指针变量来操作 第二个:strcpy()是针对字符串的,不能将浮点数拿来拷贝,你就改成:pS[j++] = zhuanhuan;更何况你还写的pS[j++],假如pS[]是...

帮我检验一下这道c语言哪里有问题
答:错误提示为rror C2065: 'getch' : undeclared identifier 那是因为你没有包含getch()的头文件 加入 include <conio.h>即可 b=a%10;它的意思是将a对10取余数将值赋给b,如果a=15的话,那么b=5 a=a/10;它的意思是把a的值缩小10倍 getch()放最后面可能是有的编译器不能自动暂停,会一闪...

为什么在C语言编译的时候出现错误?
答:1、这个错误应该是外部引用了变量,但连接的时候却没找到变量的定义。2、代码引用了链接器无法在库和对象文件中找到的内容(如函数、变量或标签)。这个原因比较复杂,如果是自己代码的问题,请为每个声明(包括函数、extern变量等)提供定义,如果是库的问题,可能是未找到某个库,也可能是C/C++函数名称...

关于C语言编写程序的一个疑问 高手帮忙看看我的程序哪错了
答:最后,尽量不要在C语言代码中夹杂中文,虽然我知道你是在做说明,那就正规点用//作注释。不要再写成char verb[100][8]={"开炮",等一百个词}; 养成良好的代码书写习惯也是学习C语言很重要的一环。特别提醒这四个问题,祝你编程方面有所提高。另外说明一声,C语言是认汉字的,你老师说的没错。以...

这段C语言程序有什么错?
答:楼主在使用for语句的时候出错了。for语句内的表达式由三个“;组成,判断if的时候,括号内的表达式在等于的时候用“==”,单个“=”在C语言中表示赋值或者初始化的时候用到。修改后程序如下。include <stdio.h> include <stdlib.h> int x = 0;int main(void){ printf("程序已启动,正在计算题目...