ここから本文です

すいません、プログラミング C言語なのですが意味がわからなすぎて、どなたかわか...

アバター

ID非公開さん

2019/10/1410:14:23

すいません、プログラミング C言語なのですが意味がわからなすぎて、どなたかわかる方いらしたら教えてもらえないでしょうか。

main 文は以下の通りとし、ユーザー関数 Alpha_print()を再起関数として活用し、 実行例のとおり、大文字アルファベットで逆三角形を描くプログラムを作成しなさい。尚、 表示の際の変換仕様は%s を使用すること。


#include <stdio.h>
void Alpha_print(int a);

int main(){
int num = 26;
Alpha_print(num);
return 0; }



<実行例>

ABCDEFGHIJKLMNOPQRSTUVWXYZ ABCDEFGHIJKLMNOPQRSTUVWXY

ABCDEFGHIJKLMNOPQRSTUVWX ABCDEFGHIJKLMNOPQRSTUVW ABCDEFGHIJKLMNOPQRSTUV ABCDEFGHIJKLMNOPQRSTU ABCDEFGHIJKLMNOPQRST ABCDEFGHIJKLMNOPQRS ABCDEFGHIJKLMNOPQR
ABCDEFGHIJKLMNOPQ
ABCDEFGHIJKLMNOP
ABCDEFGHIJKLMNO
ABCDEFGHIJKLMN
ABCDEFGHIJKLM
ABCDEFGHIJKL
ABCDEFGHIJK
ABCDEFGHIJ
ABCDEFGHI
ABCDEFGH
ABCDEFG
ABCDEF
ABCDE
ABCD
ABC
AB
A

閲覧数:
40
回答数:
3
お礼:
50枚

違反報告

ベストアンサーに選ばれた回答

プロフィール画像

カテゴリマスター

n2q37_cppさん

2019/10/1411:19:39

~プログラム例~

void Alpha_print(int a)
{
if (a > 0) {
char s[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
s[a--] = '\0';
printf("%s\n", s);
Alpha_print(a);
}
}




《解説》

「大文字アルファベット」の文字列を s に用意します。通常であれば、static const char s[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; 等とするところですが、ここでは 非 const とします。

そして s[a--] に '\0' を代入することで文字列を短くします。


「尚、 表示の際の変換仕様は%s を使用すること」

この要件に従って s を出力します。

そして、a は事前に -1 していますので、これを引数として再帰させます。

ベストアンサー以外の回答

1〜2件/2件中

並び替え:回答日時の
新しい順
|古い順

sem********さん

2019/10/1410:29:42

#include <stdio.h>
void Alpha_print(int a);

int main(){
int num = 26;
Alpha_print(num);
return 0;
}

void Alpha_print(int a){
char c = 'A';
int i,j;

for(j = a; j > 0; j--){
for(i = 0; i < j; i++){
printf("%c", c+i);
}
printf("\n");
}
}

yay********さん

2019/10/1410:27:44

A~Z+'\0'までのchar配列用意して
配列を裏から'\0'で埋めながら出力するとか

あわせて知りたい

この質問につけられたタグ

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる