1035 打印菱形图案
由键盘输入正数n(n<30),要求输出如下2*n+1行的菱形图案。
输出格式
菱形右边不留多余空格
输入样例
2
输出样例
*
***
*****
***
*
#include <stdio.h>
#include <stdlib.h>
int main()
{
int n,line,h;
scanf("%d",&n);
//上半部分
for(line=1;line<=n+1;line++)//控制换行
{
for(h=1;h<=n+line;h++)//控制每一行的打印,该行需要打印n+line个
{
if(h<=n+1-line)//打印的空格数
printf(" ");
else
printf("*");
}
printf("\n");
}
//下半部分
for(line=n;line>0;line--)//这里反过来,后面的与上半相同
{
for(h=1;h<=n+line;h++)
{
if(h<=n+1-line)
printf(" ");
else
printf("*");
}
printf("\n");
}
return 0;
}
//标程
#include "stdio.h"
#define abs(x) ((x)>0?(x):-(x))//也可以直接#include<math.h>
main()
{ int n,i,j;
scanf("%d",&n);
for(i=-n;i<=n;i++)
{
for(j=1;j<=abs(i);j++) printf(" ");
//打印完空格后来到下一个for循环语句打印*
for(j=1;j<=2*n+1-2*abs(i);j++) printf("*");
printf("\n");
}
}
1028 求素数
输出2到200之间(包括2、200)的所有素数(注:要求1行1个素数,按由小到大的顺序输出)。
输入样例
(无)
输出样例
2
3
5
7
……
199
#include "stdio.h"
int main()
{
int i,j;
for(i=2;i<200;i++)
{
int flag=0;//记得每个数循环的时候将flag重新赋值为0!!
for(j=2;j<i;j++)
{
if(i%j==0)
flag=1;
}
if(flag==0)
printf("%d\n",i);
}
}
1137 找满足要求的数字
输出1到9999中能被7整除,而且至少有一位数字是5的所有数字
输出格式
一行一个
输出样例
35
56
105
154
......
#include <stdio.h>
#include <stdlib.h>
int main()
{
for(int i=1;i<=9999;i++)
{
if(i%7==0)
{
if(i%10==5||i/10%10==5||i/100%10==5||i/1000==5)
printf("%d\n",i);
}
}
return 0;
}
//标程
#include "stdio.h"
main()
{ int i, j;
for(i=7; i<=9999; i=i+7)
{ j=i;
while(j!=0)
{ if(j%10==5) break;
j=j/10;
}
if(j!=0) printf("%d\n", i);
}
}
1038 打印图案
由键盘输入正数n(n<10),要求输出如下中间数字为n的菱形图案。
输出格式
菱形右边不留多余空格
输入样例
4
输出样例
1
121
12321
1234321
12321
121
1
#include "stdio.h"
#include "math.h"
int main(){
int h,n,i,j,k;
scanf("%d",&n);//输入半层数,例如上图为4.
for(i=1-n;i<=n-1;i++)//第几层
{
for(j=0;j<abs(i);j++)
printf(" ");//先输入空格
for(k=1;k<=n-abs(i);k++)
printf("%d",k);//再输入*数
for(h=n-abs(i)-1;h>=1;h--)
printf("%d",h);
printf("\n");//记得换行
}
return 0;
}
//标程
#include<stdio.h>
#define abs(x) ((x)>0?(x):-(x))
main()
{ int n,i,j;
scanf("%d",&n);
n--;
for(i=-n;i<=n;i++)
{ for(j=0;j<abs(i);j++) printf(" ");
for(j=-(n-abs(i));j<=n-abs(i);j++) printf("%d",n+1-abs(j)-abs(i));
printf("\n");
}
}
1 打印数字空心菱形
由键盘输入n(n为奇数),打印如下图空心菱形
例n=7
1
2 2
3 3
4 4
3 3
2 2
1
输入格式
整数
输出格式
如题
输入样例
3
输出样例
1
2 2
1
#include<stdio.h>
int main()
{
int n;
scanf("%d",&n);
int m;
int i,j,k,t=1;
//上半部分
m=(n+1)/2;//上半部分的行数,包括中间那行
for(i=1;i<=m;i++)
{
for(j=1;j<=m-i;j++)
{
printf(" ");//打印每行前面的空格
}
printf("%d",i);//打印每行第一个数
if(i>=2)//分1和大于等于2的情况
{
for(k=0;k<t;k++)
{
printf(" ");
}
printf("%d",i);
t=t+2;//每行中间的空格比上一行多两个空格
}
printf("\n");
}
//下半部分
t=k-2;//先减两个空格
n=m;
m=m-1;//下半部分的行数,上部分-1(因为不包括中间的那行)
for(i=m;i>0;i--)
{
for(j=1;j<=n-i;j++)
{
printf(" ");
}
printf("%d",i);
for(k=1;k<=t;k++)
{
printf(" ");
}
if(i>=2)
{
printf("%d\n",i);
}
t=t-2;
}
return 0;
}