分析一下这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语言程序是错误的,找个大神帮我改正一下,谢谢了。
include"stdio.h"void fenxi(int n);void shuchu(int n);void fenxi(int n){ int a[52];int i,j;printf("游戏分析:\\n\\n");printf("\\t如下列数组,游戏开始时,所有牌面朝上,每张牌翻一下,则该张牌出现一次,若");printf("出现偶数次的牌为正反抵消,依然为朝上的,所以朝上的为...
谁能帮我分析一下C语言的这个程序
include<stdio.h> int main (){ int a[4];int i;for(i=0;i<4;i++)a[i]=i;for(i=0;i<4;i++)printf("%d ",a[i]);} 返回值,举个例子:就是编的每一个程序都可以看成一个函数,就是有输入,有输出,这个输出就是返回值的一种。格式是return +结果 C语言中的函数有两种...
c语言编程时出现错误,是什么原因呢?求助
c syntax error before string constant 字符串常量前的语法错误 F:\\新建文件夹\\main.c [Warning] date definition has no type or storage class 警告:数据定义没有类型 F:\\新建文件夹\\Makefile.win [Build Error][main.o]Error 1 构建错误,main中出现一个错误。贴个代码片段帮你分析一下。
C语言,这题解析是不是错了
因为指针是*p与*s是int,因为指针p=c,即*p=c[0],那么*(p+1)=c[1],指针之间的加减运算是根据指针的类型进行调整的,所以虽然s-p地址之间相差20,但是这两个地址之间只相差5个地址。倘若你把*p与*s改成short或char类型,那么答案却变成了10或20了 ...
分析一下C语言这道题?
如图所示,运行结果为a = 5 分析过程如下:第一次循环,a=1,b=1,b%3==1为真,执行b+=3后b=4,continue进入下一循环;第二次循环,a=2,b=4,b%3==1为真,执行b+=3后b=7,continue进入下一循环;第三次循环,a=3,b=7,b%3==1为真,执行b+=3后b=10,continue进入下一循环...
c语言,这个程序错那里了!?求大神解析,谢谢!!
scanf("%d,%f", &a, &b ) ; \/\/float应该是%f 改一下试试
c语言,循环输入一个数,输出小于这个数的所有的素数;可以详细解析一下这...
include<stdio.h>#include<math.h>int main(){int i;int k;int j;int m;printf("可以循环输入一个数,打印所有小于这个数的素数(q to quit)");while (scanf_s("%d", &i) == 1){for (k = 2; k < i; k++)\/\/小于i的所有的数{j = sqrt(k);\/\/若k大于1,且不是素数,则sqrt...
C语言计算中得出-1.#indoo是什么原因,有没有解决办法
C语言计算中得出-1.#indoo的原因是溢出类问题 C语言计算中得出-1.#indoo的原因一般有两类 第一类:数组下标溢出问题,例如数组出现负数的下标 第二类:数据类型上面的溢出,你如果求幂或者费伯拉西数列的时候,项数大很容易引发溢出,float类型数据溢出就报-1.#indoo这个错误.include <stdio.h> main() {...
这道C语言选择题严格来说是不是选项B也是错的?答案给的是D
分析如下:A、p->pk,语法正确,其值为"right"B、*p.pk,语法错误,其等效于*(p.pk),.pk左边必须为class\/struct\/union类型,而p为指针类型。C、*p->pk,语法正确,其等效于*(p->pk),其值为'r'。D、*x.pk,语法正确,其等效于*(x.pk),其值为'r'。B和D的区别在于p是指针类型,...
C语言 分析下面程序错误的原因并改正,求大神帮帮忙,只要解决就采纳,谢 ...
工大的吧……在\/char 那里加个星号就行了,不用谢,我是工大新生孔瑞,人称孔哥
爰剂澳扶: 您好,您的程序有如下几处问题:1,您的关键字书写错误:dt=sprt(b*b-4*a*c); 中sprt应改为sqrt(求表达式的平方根) 优化后的源程序代码为:#include<stdio.h> #include<math.h> void main() { float a,b,c,dt; printf("input a,b,c:\n"); scanf("\n ...
朔城区18414835573: 这个C语言程序哪儿错,求解!! - ?
爰剂澳扶: 刚在win-tc运行了下: 1 ========= 逻辑错误 printf("请输入两个整数:");scanf("%d,%d",&x,&y); /* x,y未定义,确实在主函数中未定义*/2 ========== 逻辑错误 printf("两个整数的最大公约数为:%d\n",m); printf("两个整数的...
朔城区18414835573: 这条c语言错误提示是什么意思啊,求解释 - ?
爰剂澳扶: 错误的意思是:重载函数delete_arr不能仅仅是返回类型不同.如果你的程序是C语言程序,那么C语言是不支持函数重载的.如果是C++程序,那么C++语言支持函数重载.所谓函数重载,是指一组同名函数,具有不同的函数参数特征(参数的数量、数据类型、顺序),完成类似的功能.如下列函数属于重载函数: int add(int num1, int num2); string add(string num1, string num2);下列函数不属于重载函数: int add(int num1, int num2); void add(int num1, int num2);
朔城区18414835573: 帮忙分析下这个C语言程序(错误及如何改正) - ?
爰剂澳扶: 因为在调用scanf是它是从缓冲区中读取字符 但是它不移动缓冲区的指针所以它每次都是从相同的地方读入字符 解决办法是在每次循环里调用 刷新流函数flushall()就可以了 但是这样还是没有办法结束循环 下面给出解决程序 你的问题都解决了#include<stdio.h> void main() { int c; do { printf("Please input a number:"); c=getch(); if(c<=127&&c>=0) { printf("%d:%c\n",c,c); } else printf("Input error!"); } while(c!=32); }
朔城区18414835573: C 语言中这个错误什么意思? - ?
爰剂澳扶: 你应该是在用C++的编程环境写C语言的程序 这个不是错误,是警告,而且这个警告其实并不影响程序的运行 它的意思是:main函数需要返回一个值,或者在前面加上void以表示不需要返回值 所以可以写成void main() 也可以写int main()并在main函数的最后写上return 0(不一定是0,任意整数都行) 当然,如果你直接写成main()也不算你错,出这个警告信息你可以直接无视,不影响程序运行的 后来的C++规定,main函数必须有类型声明,所以在C++程序里面就不能直接写main()了,通常写上面提到的那两种格式.
朔城区18414835573: C语言出现这样的错误,解释下 - ?
爰剂澳扶: 它只是一个警告,说明你在申明main函数时没有申明它的返回值类型,正确的应该是 int main(...); 而还有一个是itoa被申明(declaration)了两人次.如果在调用之前就定义好的函数,就不用再申明了.
朔城区18414835573: 看一下这个C语言错误,/*char a[6],b[]="China"; a=b;printf(”% - ?
爰剂澳扶: 看一下这个C语言错误,/*char a[6],b[]="China"; a=b;printf(”%s”,a);*/这个在编译过程中为什么会出错.错误原因,字符串复制错误 字符串复制不能简单的使用= 需要使用字符串复制函数strcpy
朔城区18414835573: 这个C语言的程序错在哪儿? - ?
爰剂澳扶: 程序的确存在bug: 1、对于f取得a, b, c,中的最大数,正确; 2、对于e取得a, b, c,中的最小数,错误; 举一反例子楼主就知道了: 当a=0,b=2,c=1时,b>a,所以if (b>f) f=b; else e=b; 执行之后,f=b被执行;接着看下面的语句: if (c>f) f=c; ...
朔城区18414835573: 谁帮我看一下这个C语言程序错在那里::: - ?
爰剂澳扶: 错误有4:1.预定义错误,改为:#include 2.求平方根函数名不对,应为:sqrt()3.printf("a=%.2lf,b=%.2lf,c=%.2lf\narea=%.2lf\n"a,b,c,area);缺逗号,见楼上的回答4.很严重的一个: 当main()前面不加任何修饰的时候,默认为int类型,必须有...
朔城区18414835573: 帮忙看一下这个C语言程序错在哪里了 - ?
爰剂澳扶: 修改后:#include "stdio.h" int max(int x,int y) { int e; if(x>y) e=x; else e=y; return e; } int main() { printf("请输入三个整数\n"); int a,b,c,d; scanf("%d%d%d",&a,&b,&c); d=max(max(a,b),c); printf("最大数是%d\n",d); return 0; } 以上回答你满意么?