c语言改错 请求帮助。c基础不扎实、错误太多了。希望能附带改进我薄弱方面的建议。 谢谢

Python022

c语言改错 请求帮助。c基础不扎实、错误太多了。希望能附带改进我薄弱方面的建议。 谢谢,第1张

这里 j 的取值范围有点大了。我用的是10000,没有超出 int 的范围,如果必须的话你把int数据改成long型 就ok了

给你找一些语法错误,程序有点看不懂,后面我写了一个,验证过了,有详解,看下吧

实在是看不懂,用阿拉伯数字和字母当变量名的时候,最好注释下,搞不清你的大部分变量是表达的什么意思

#include<stdio.h>

#include<string.h>

main()

{

int i=0,j=0,k=0,l=0,m=0,g=0

prinf("请输入数据个数")

scanf("%d\n",&i)//这里的换行符'\n'删掉,scanf里面不能加换行符

j=i

m=i

int A[i]

for(i=0i<ji++)

{

scanf("%d\n",&A[i]) //同上

}

int B[m]

k=strlen(j) //这里的j是整数不是字符串,没意义

h=(k-1)

m=0

char C[k],D[k]

for(i=0i<ji++)

{

C[k]=A[i]

for(k=0k<hk++)

{

D[k-2-h]=C[k]

}

l=strcmp(D,C)/

if(l==0)

{

B[m]=D[k]

m++

}

g=m

}

printf("%d\n",B[g])

}

/************************************************************************/

#include <stdio.h>

int mirror_number(int num)//函数声明

int main(void)

{

int b = 0//

int T//一组数据的个数

int num=0//mirror_number数的计数

int i

scanf("%d", &T)//输入数据的个数

int abuf[T]//定义保存数据的数组

int j //取值范围的变量

int af = 0//数组下标,后面可以看到

int m = 0

for(i = 0i <T i++)

{

scanf("%d", &abuf[i])//输入数据

}

for(j=1j <= 10000j++)//在取值范围内选择符合条件的数

{

if(mirror_number(j))//符合条件执行下面的语句

{

num++//对符合条伯的数据进行计数

if(num == abuf[b])//当计数个数和数组元素相等的时候,就执行下面的语句

{

af++//数组下标计数,这句有点多于,可以定到判断条件里面去

abuf[b] = abuf[af] //取数组元素的下一个值

printf("%d\n", j)//输出符合上面所有条件的mirro_number

if(abuf[af] <= num)//如果后面输入的数据比前面的小, 就对下面的变量进行初始化,因为后一个比前面一个小的时候,必须从头开始查找

{

j = 0

num = 0

}

if(af == T)//如果全部找出来了,跳出循环

break

}

}

}

return 0

}

int mirror_number(int num)

{

int i = 0

int buf[10] = {0}

do{

buf[i++] = num%10

}while((num/=10) != 0)//计算出这个数是几位数,我这里数组表示的是倒过来的数,反正mirror_number的前后都一样,所以我没有把数据还原成正顺序

if(i <2)//只有一位数的肯定符合条件

return 1

int k

for(k=0k <i/2k++)

{

if(buf[k] != buf[i-k-1])//第一位和最后一位进行比较,

return 0

}

return 1

}

学java不一定要学好C,C的难点在指针,java没有指针。以后你做java的话,你C语言要学好函数和数组。但是C是所有高级语言的基础,有些会一点点C的人认为C没用,容易学。这样的人很无知,C语言博大精深,非常非常难,C语言的精华全部用在unix和linux操作系统,这些操作系统就是C语言写的。绝大多数人做C开发几十年,他都不敢说他C语言玩得多好。C语言目前还是最重要的高级语言,嵌入式开发,苹果系统,安卓系统,他们的核心代码都是C。windows系统是C++。之所以现在好多人认为学java比学C好,是因为C和C++太底层,很多函数需要自己写,对软件工程师的能力要求太高,软件开发周期也太长。java提供了完整的库函数,不要程序员学,直接调用就可以实现功能。所以软件公司现在很少用C和C++开发。如果你想学好java,不妨好好学习C++,C++是面向对象程序设计的基础,java的库函数,甚至java虚拟机,全部是C++写的,