SCAU高级语言程序设计--实验6 循环结构(二)(1)

SCAU高级语言程序设计--实验6 循环结构(二)(1)

一、堂上限时习题

1、求素数

题目:输出2到200之间(包括2、200)的所有素数(注:要求1行1个素数,按由小到大的顺序输出)。

思路:因数都是成对出现的。比如,100的因数有:1和100、2和50、4和25、5和20、10和10。即成对的因数,其中一个必然小于等于100的开平方,另一个大于等于100的开平方。因此只要判断2~sqrt(n)的因数即可。

#include<stdio.h>
#include<math.h>
int main(){
    int x,i,j;
    for(i=2;i<=200;i++){//遍历每一个数字
        x=sqrt(i);//开平方根
        for(j=2;j<=x;j++){
            if(i%j==0)//若需要可以整除的数就退出循环
                break;
        }
        if(j>x)//如果发现了因数,因为j<x,所以不打印。只有j>x且没有找到因数才打印。
            printf("%d\n",i);
    }
    return 0;
}

 

2、打印菱形

题目:由键盘输入正数n(n<30),要求输出如下2*n+1行的菱形图案。

思路:可以参考实验3钟的菱形题目。改改算法就可以了。加入的算法:n = (2*m+1)/2+1;

#include<stdio.h>
#include<stdlib.h>
int main()
{
    int m,n,i,j;
    scanf("%d",&m);//输入半层数,例如上图为4.
    n = (2*m+1)/2+1;//加入的算法
    for(i=1-n;i<=n-1;i++){//第几层
        for(j=0;j<abs(i);j++)
           printf(" ");//先输入空格
        for(j=0;j<2*(n-abs(i))-1;j++)
           printf("*");//再输入*数
        printf("\n");//记得换行
    }
    return 0;
}

 

  • 4
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值