2020级工联部第一次考核
第一题
#include<stdio.h>
int main()
{
int x,y,z=0;
printf("输入数字:");
scanf ("%d",&x);
y=x;
while(y>0)
{
z=z*10+y%10;
y=y/10;
}
if(z==x)
{
printf("true");
}
else
{
printf("false");
}
return 0;
}
问题:这题主要是找到对应的数字转化的关系式。
过程:输入的数字赋予y,y%10等于y的个位数,y/10等于去掉个位数的数(y为int型)。z通过循环得到x的回文数,再与x相比较。
知识点:这题主要考察了while和if的用法,其中难点还是找到数字转化的关系式。
第二题
#include<stdio.h>
int main()
{
int a,c=0;
scanf("%d",&a);
while(a!=0)
{
c=c*10+a%10;
a=a/10;
}
if(a==0)
{
c=a;
}
printf("%d,",c);
return 0;
}
这题和第一题差不多,不多说。
第三题
#include<stdio.h>
int main()
{
int a[100][100];
int i,j,k,n;
printf("输入非负整数:");
scanf("%d",&n);
for(i=0;i<n;i++)
{
a[i][i]=1;
a[i][0]=1;
}
for(i=2;i<n;i++)
{
for(j=1;j<=i-1;j++)
{
a[i][j]=a[i-1][j-1]+a[i-1][j];
}
}
for(i=0;i<n;i++)
{
for(k=1;k<n-i;k++)
{
printf(" ");
}
for(j=0;j<=i;j++)
{
printf("%3d",a[i][j]);
}
printf("\n");
}
return 0;
}
这题花了我较多时间,主要还是卡在空格那里。
问题:这题要找到杨辉三角的算法规矩,还有空格的循环算法。
过程:先输出正整数n,n代表三角的行数。然后定义a的二维数组和x,j,k,确定第一行和第二行和每一行的第一位和最后一位都是1,第三行开始,中间数都是头上两个角的和,所以有了a[i][j]=a[i-1][j-1]+a[i-1][j]。最后先利用x,k的数循环先输出由长到短的空格,然后利用x,j的数循环输出a[i][j]。输出的数是%3d,3个数位,形成了等腰的杨辉三角。
知识点:这题需要利用数组,还有利用for语句的循环。
ps:最后一题花了我挺多时间,因为网上对于等腰三角的比较少,书上只有直角的杨辉三角。总之这次我是网上找了挺多内容的,但是我觉得我学到了,所以我觉得这次任务我受益匪浅。