C语言循环练习2,建议做做

写在前面:这里是小王成长日志,一名在校大学生,想在学习之余将自己的学习笔记分享出来,记录自己的成长轨迹,帮助可能需要的人。欢迎关注与留言。

1.下列程序的功能为:输出100以内能被3整除且个位数为6的所有整数。请填空补充完整程序并上机调试。

#include <stdio.h>
int main()
{
    int i,j;
    for(i=0; i<10  ; i++)
    {
        j=i*10+6;
        if(  j%3!=0  )  continue;
        printf("%d\n",j);
    }
    return 0;
}

扩展练习:如果不用continue,有没有其他方法可以实现上述功能,试试?
答:有,
第一种:改造for循环:

    for (i = 0; i < 100; i++)
        if (i % 3 == 0 && i % 10 == 6)
            printf("%d\n", i);

第二种:使用goto关键字

for (i = 0; i < 10; i++)
    {
        j=i*10+6;
        if (j % 3 != 0)
            goto RESTART;
        printf("%d\n", j);
        RESTART:;
    }

2.分析下列程序,写出运行结果,然后上机运行验证,并回答如下问题。

#include <stdio.h>
int main()
{
    int sum=0,i=0;
    while(1)
    {
        i++;
        if(i%2==0) continue;
        printf("%d+",i);
        sum=sum+i;
        if(sum>20) break;
    }
    printf("\b=%d\n",sum);
    return 0;
}

回答:
(1)while(1)表示什么意思。
答:死循环,因为while的条件永远为真(1)
(2)说明程序中continue和break的作用。
答:continue跳过当前循环后面的语句,进行下一次循环,在程序中是跳过偶数
Break退出循环,程序中是退出while循环,执行 printf("\b=%d\n",sum); 语句

(3)简单叙述该程序实现什么功能。
答:将奇数相加,直到和大于20为止,输出这个等式,程序中的输出为1+3+5+7+9=25

3.用循环语句编写程序,输出如下图案:
A
BB
CCC
DDDD
EEEEE
FFFFFF
GGGGGGG
答:

#include <stdio.h>
int main()
{
    char ch = 'A';
    for (int i = 0; i < 7; i++)
    {
        for (int j = 0; j <= i; j++)
            printf("%c", ch + i );
        printf("\n");
    }

    return 0;
}

4.啤酒和饮料问题:啤酒每罐2.3元,饮料每罐1.9元。小明买了若干啤酒和饮料,一共花了82.3元。请编程实现计算小明分别买了几罐啤酒和几罐饮料。
答:

#include <stdio.h>
int main()
{
    int x = 0, y = 0;
    for (int i = 0; i <= 82.3 / 2.3; i++)
//遍历所有可能的情况
        if ((82.3 - 2.3 * i)/1.9==(int)((82.3 - 2.3 * i)/1.9))
//判断82.3扣除买了啤酒的钱后是否能购买*整数*罐饮料
            printf("买了%d瓶啤酒%d瓶饮料\n", i, (int)((82.3 - 2.3 * i)/1.9));

    return 0;
}

5.编程实现:求1000以内的完数,完数是指该数等于该数所有因子的和。例如:6=1+2+3,28=1+2+4+7+14。

答:

#include <stdio.h>
int main()
{
    int count = 0, flag = 0;
    for (int i = 2; i <= 1000; i++)
    {
        flag = 0; //初始化
        for (int j = 1; j <= i / 2; j++)
            if (i % j == 0)
                flag += j;
        if (flag == i)
            count += i;
    }
    printf("%d", count);

    return 0;
}

注:1不是完数 完数要排除本身


都看到这里了,各位哥哥姐姐叔叔阿姨给小王点个赞 关个注 留个言吧,和小王一起成长吧,你们的关注是对我最大的支持。
有事没事进来看看吧 : 小王的博客目录索引
C语言专栏看这 : C语言学习专栏


如果以上内容有任何不准确或遗漏之处,或者你有更好的意见,就在下面留个言让我知道吧-我会尽我所能来回答。

猜你喜欢

转载自blog.csdn.net/weixin_45761327/article/details/106586044