| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1013 人关注过本帖
标题:被多重循环折磨的一周[tk30]
只看楼主 加入收藏
小白程序
Rank: 1
等 级:新手上路
帖 子:33
专家分:0
注 册:2022-2-24
结帖率:100%
收藏
已结贴  问题点数:40 回复次数:9 
被多重循环折磨的一周[tk30]
没想到看着挺简单的,上手这么难,感觉自己的头发丝少了一戳。
求解:输出以输入整数为边长的正方形;
***
***
***
    输出输入整数为边长的长方形,较小数为行。
*****
*****
*****
九九乘法表输出如下:
    |  1   2   3   4   5   6    7    8    9
——————————————————————
  1 |
  2 |                                            <-这里面是结果
  3 |
......
输出该格式的乘法表。
附带上详细的注解
如果可以的话,纠正一下我的错误(发在评论区)
积分全部奉上
搜索更多相关主题的帖子: 循环 输出 整数 乘法表 多重 
2023-04-14 15:34
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9025
专家分:54030
注 册:2011-1-18
收藏
得分:10 
纠正一下我的错误
你的代码呢?

程序代码:
#include <stdio.h>

int main( void ) 
{
    unsigned n;
    scanf( "%u", &n );

    for( unsigned i=0; i!=n*(n+1); ++i )
        putchar( "*\n"[(i+1)%(n+1)==0] );
}


程序代码:
#include <stdio.h>

int main( void ) 
{
    unsigned a, b;
    scanf( "%u%u", &a, &b );

    if( a > b )
    {
        unsigned t = a;
        a = b;
        b = t;
    }

    for( unsigned i=0; i!=a*(b+1); ++i )
        putchar( "*\n"[(i+1)%(b+1)==0] );
}


程序代码:
#include <stdio.h>

int main( void ) 
{
    puts( "  |  1  2  3  4  5  6  7  8  9" );
    puts( "------------------------------" );
    for( unsigned r=1; r!=10; ++r )
    {
        printf( "%d |", r );
        for( unsigned c=1; c!=10; ++c )
            printf( "%3u", r*c );
        putchar( '\n' );
    }
}
2023-04-14 16:38
小白程序
Rank: 1
等 级:新手上路
帖 子:33
专家分:0
注 册:2022-2-24
收藏
得分:0 
回复 楼主 小白程序
代码没看懂啥意思,(等下我在细细看看)能不能注解一下;预操纵能定义变量?unsignedC语言里有吗
2023-04-14 16:55
小白程序
Rank: 1
等 级:新手上路
帖 子:33
专家分:0
注 册:2022-2-24
收藏
得分:0 
回复 楼主 小白程序
#include<stdio.h>
int main()
{
    int n;
    printf("请输入要打印的行数:");
    scanf_s("%d", &n);

    int i, j, num;
    for (i = 1; i <= n; i++){
        for (j = 1; num = i; j <= 9) j++, num += i) {
            printf("%d", num);
        }
        printf("\n");
    }return 0;
}
2023-04-14 16:58
小白程序
Rank: 1
等 级:新手上路
帖 子:33
专家分:0
注 册:2022-2-24
收藏
得分:0 
上面是不是编译器的问题呀
2023-04-14 17:01
东海ECS
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:Python
等 级:版主
威 望:32
帖 子:412
专家分:1646
注 册:2023-1-24
收藏
得分:30 
输出以输入整数为边长的正方形的C语言代码如下:

#include<stdio.h> int main() { int n, i, j; scanf("%d", &n); for (i = 0; i < n; i++) { for (j = 0; j < n; j++) { printf("*"); } printf("\n"); } return 0; }


输出输入整数为边长的长方形的C语言代码如下:

#include<stdio.h> int main() { int m, n, i, j; scanf("%d%d", &m, &n); for (i = 0; i < m; i++) { for (j = 0; j < n; j++) { printf("*"); } printf("\n"); } return 0; }


输出九九乘法表的C语言代码如下:

#include<stdio.h> int main() { int i, j; printf(" |"); for (i = 1; i <= 9; i++) { printf("%4d", i); } printf("\n——————————————————————\n"); for (i = 1; i <= 9; i++) { printf("%2d |", i); for (j = 1; j <= 9; j++) { printf("%4d", i * j); } printf("\n"); } return 0; }


代码解释:

(1)输出以输入整数为边长的正方形

首先读入边长,然后使用两层循环,外层控制行数(i),内层控制列数(j),每输出一个*后换行。最终输出n行n列的正方形。

(2)输出输入整数为边长的长方形

读入长和宽,然后使用两层循环,外层控制行数(i),内层控制列数(j),每输出一个*后换行。最终输出m行n列的长方形。

(3)输出九九乘法表

首先输出表头,列标从1到9,间隔4个字符,行标从1到9,间隔2个字符。再使用两层循环,外层控制行数(i),内层控制列数(j),根据乘法的规则输出i*j,每个数字占4个字符位置,每行输满后换行。

会当凌绝顶,一览众山小.
2023-04-15 09:32
小白程序
Rank: 1
等 级:新手上路
帖 子:33
专家分:0
注 册:2022-2-24
收藏
得分:0 
太强了
2023-04-15 18:22
东海ECS
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:Python
等 级:版主
威 望:32
帖 子:412
专家分:1646
注 册:2023-1-24
收藏
得分:0 
以下是引用小白程序在2023-4-15 18:22:32的发言:

太强了

这其实很简单,是最基础的算法题之一

会当凌绝顶,一览众山小.
2023-04-16 10:06
forever74
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:CC
等 级:版主
威 望:58
帖 子:1694
专家分:4282
注 册:2007-12-27
收藏
得分:0 
既然感觉受到了多重循环的折磨(见标题),
那就不妨琢磨一下R版在2楼的前两个代码,其精髓是只有1层循环哦。

对宇宙最严谨的描述应该就是宇宙其实是不严谨的
2023-04-16 16:48
小白程序
Rank: 1
等 级:新手上路
帖 子:33
专家分:0
注 册:2022-2-24
收藏
得分:0 
嗯嗯
2023-04-19 21:24
快速回复:被多重循环折磨的一周[tk30]
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.050419 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved