2017年:
1.输入n(1<=n<=9),打印对应行数的三角形。要注意非法输入。
2.输入n,判断n是否在n平方的右边出现。比如1,5,6,25,都在它的平方最右侧出现,就输出yes,否则输出no,这题好像跟前年的一样,题目的叙述有点问题,当时好多人问老师来着。
3.输入若干字符串,以空格隔开,输入回车结束,将字符串按ascii码表排列后输出。比如输入ac cf bgh\n,输出ac bgh cf。
4.输入字符串,递归输出它们的全排列(不可重复)。比如输入abc,输出abc,acb,bac,bca,cba,cab。测试样例基本正常,有一个比较奇怪,是abab,不知道该输出什么
1.
3.
4.//无法去重,输入abab这种就会有重复,就按不同的算吧
1.输入n(1<=n<=9),打印对应行数的三角形。要注意非法输入。
2.输入n,判断n是否在n平方的右边出现。比如1,5,6,25,都在它的平方最右侧出现,就输出yes,否则输出no,这题好像跟前年的一样,题目的叙述有点问题,当时好多人问老师来着。
3.输入若干字符串,以空格隔开,输入回车结束,将字符串按ascii码表排列后输出。比如输入ac cf bgh\n,输出ac bgh cf。
4.输入字符串,递归输出它们的全排列(不可重复)。比如输入abc,输出abc,acb,bac,bca,cba,cab。测试样例基本正常,有一个比较奇怪,是abab,不知道该输出什么
1.
#include<stdio.h>
int main()
{
int n;
scanf("%d",&n);
if(n<1||n>9)
{
printf("error");
return 0;
}
for(int i=1;i<=n;i++)
{
int j=n-i;
while(j--)
printf(" ");
int k=2*i-1;
while(k--)
printf("*");
printf("\n");
}
}
2. #include<stdio.h>
int main()
{
int n,k=0,i=0,p=0;
long int num;
scanf("%d",&n);
num=n*n;
int l=n,o=1;
while(l!=0)
{
l/=10;
k++;
o=o*10;
}
p=num%o;
//printf("%d %d\n",p,n);
if(p==n)
printf("yes");
else
printf("no");
}
3.
#include<stdio.h>
#include<string.h>
void swap(char p[],char q[])
{
char temp[100];
strcpy(temp,p);
strcpy(p,q);
strcpy(q,temp);
}
int main()
{
char str[100][100],c,str1[100][100];
int i=0,cnt=0;
do
{
scanf("%s",str[i++]);
scanf("%c",&c);
cnt++;
}while(c!='\n');
for(i=0;i<cnt;i++)
{
for(int j=i;j<cnt;j++)
{
if(strcmp(str[i],str[j])>0)
swap(str[i],str[j]);
}
}
for(i=0;i<cnt;i++)
printf("%s\n",str[i]);
}
4.//无法去重,输入abab这种就会有重复,就按不同的算吧
#include<stdio.h>
#include<math.h>
#include <string.h>
char str[100];
void recu(char *r,int m,int n)
{
if(n==m)
{
char *y=r;
for(int a=0;a<m;a++)
printf("%c",*r++);
printf("\n");
}
else
for(int j=n;j<m;j++)
{
char temp;
temp=str[j];
str[j]=str[n];
str[n]=temp;
recu(r,m,n+1);
temp=str[j];
str[j]=str[n];
str[n]=temp;
}
}
int main()
{
char *r=str;
int i=0;
scanf("%s",str);
while(*r!='\0')
{
r++;
i++;
}
r=str;
//printf("%d\n",i);
// printf("piror:%s*",str);
recu(r,i,0);
}