2017-12-24 19 views
-6

次のコードでは、すべての行の最初の文字を変更し、すべての文字を必要に応じて印刷することができました。どんな助けもありがとう。ご協力いただきありがとうございます。C Primer Plus第6版第6章プログラミング演習4

//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; 
} 

答えて

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 
+2

初心者自分自身を呼び出すように見えるかもしれませんか?私がスクロールしていたとき、私は回答者が50人のユーザーであると思った。 –

+0

@ machine_1あなたの推論には論理的な誤りがある。経験豊富なプログラマーは、質問に答えないので約50ポイントの評判を得ることができます。初心者は他の初心者に役立つ質問に答えるので、比較的高い評判を得ることができます:) –

関連する問題