C Primer Plus 第 6 版第 6 章编程练习 4

标签 c loops for-loop

使用以下代码,我能够更改每一行的第一个字母并打印所有字母,但不符合要求。任何帮助将不胜感激。预先感谢您的帮助。

//This is a program to print a pattern of the letters
//A to U.  Printing a number of letters
//with the row number. First row/one letter, second row/
//two letters, etc.
//A
//BC
//DEF
//GHIJ
//KLMNO
//PQRSTU

#include <stdio.h>

#define ROWS 6
#define CHARS 21

int main(void)
{
    int row;
    char ch;

    for(row = 0; row < ROWS; row++)
    {
        for(ch = ('A' + row); ch < ('A' + CHARS); ch++)
            printf("%c", ch);
        printf("\n");
    }

    return 0;
}

最佳答案

你在这里:

#include <stdio.h>
#include <string.h>

int main( void )
{
    const char *s = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
    const size_t N = strlen(s);

    while (1)
    {
        printf("Enter a non-negative number (0 - exit): ");

        size_t n;
        if (scanf("%zu", &n) != 1 || n == 0) break;

        size_t k = 0;

        for (size_t i = 0; i < n; i++)
        {
            for (size_t j = 0; j <= i; j++)
            {
                printf("%c", s[ k++ % N ]);
            }
            putchar('\n');
        }
    }

    return 0;
}

程序输出可能如下所示:

Enter a non-negative number (0 - exit): 12
A
BC
DEF
GHIJ
KLMNO
PQRSTU
VWXYZAB
CDEFGHIJ
KLMNOPQRS
TUVWXYZABC
DEFGHIJKLMN
OPQRSTUVWXYZ
Enter a non-negative number (0 - exit): 0

关于C Primer Plus 第 6 版第 6 章编程练习 4,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47964395/

相关文章:

c - 如何自动化测试以检查失败的 malloc 是否得到正确处理?

c++ - C++的2D分段/四元树解释

Javascript - 在循环中引用某些 HTML 元素

c - 如何提高以下循环的性能

ios - UIButton 处于循环中,事件仅在第一个元素上触发

linux - 复制包含单词但不包含其他单词的文件。/grep 不使用 for 循环

java - 通过 JNI 读取文件时崩溃,但仅运行代码的 C 元素时成功

c - 为什么我不能在 Linux 中使用函数 grantpt?

PHP 在 HTML 表格中显示数组

java - 用循环存储数组并比较最高值和最低值