给你找一些语法错误,程序有点看不懂,后面我写了一个,验证过了,有详解,看下吧
实在是看不懂,用阿拉伯数字和字母当变量名的时候,最好注释下,搞不清你的大部分变量是表达的什么意思
#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++写的,