質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

Q&A

解決済

2回答

2927閲覧

C言語でわからないところがあります

main

総合スコア10

C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

0グッド

0クリップ

投稿2016/03/03 21:04

編集2016/03/03 21:12

課題を出されたのですが正方形の1辺の長さを入力し縦横が''
の正方形の図形を描け
ただし3以上20以下とする
-------------------------------------
/
void ex06(void)//未
{

}

実行例(5の場合)

一辺の長さは(改行なしschanf)



(アスタリスクで5*5の正方形表示)

このように作るやり方を試行錯誤したのですができませんでした。誰か教えてくれませんか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

cateye

2016/03/03 21:19

正方形は辺だけを書くのでしょうか? それとも中にも*が入っているのでしょうか?
main

2016/03/03 21:24

質問ありがとうございます。辺だけを書くシステムです。
guest

回答2

0

ベストアンサーが出てしまっているみたいですが、今帰って来た所なのでこんな方法もあるということで・・・

c

1~/test/ctst >cat tst01.c 2#include <stdio.h> 3#include <stdlib.h> 4#include <string.h> 5// 6int main() 7{ 8 char buf[32]; 9 // 10 fputs("1辺の長さ→ ", stdout ); // 画面出力 11 fgets( buf, sizeof buf, stdin ); // 文字列入力 12 size_t len= (size_t)strtol(buf, 0, 10);// 文字列を数値に変換 13 // 14 if( len < 3 || 20 < len ){ 15 fputs("辺の長さは3~20\n", stderr ); 16 return 1; 17 } 18 // 19 memset( buf, '*', len ); 20 buf[len]= '\n' ; // 改行 21 buf[len+1]= '\0' ; // 文字列終端 22 // 23 fputs( buf, stdout ); 24 // 25 memset( &buf[1], ' ', len-2 );// 両端を残して中を空白に置き換える 26 for( size_t i= 1; i < len-1; i++ ){ 27 fputs( buf, stdout ); 28 } 29 // 30 memset( buf, '*', len ); // 中の抜けた文字列を別に作ればこれはいらない 31 fputs( buf, stdout ); 32 // 33 return 0; 34}

実行結果

c

1~/test/ctst >./a.out 21辺の長さ→ 15 3*************** 4* * 5* * 6* * 7* * 8* * 9* * 10* * 11* * 12* * 13* * 14* * 15* * 16* * 17*************** 18~/test/ctst >./a.out 191辺の長さ→ 30 20辺の長さは3~20

投稿2016/03/04 10:26

編集2016/03/05 09:42
cateye

総合スコア6851

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

解説しつつ書きたいところですが、
答えだけ書いておきます。(テスト済)
よくソースを見て研究してください。
#include<stdio.h>

int main(void){

int n,i,j;
printf("一辺の長さは?");
scanf("%d",&n);

if(n<5 || n>20){
printf("一辺の長さは5から20までです\n");
return -1;
}

for(i=0;i<n;i++){
printf("*");
}
printf("\n");

for(j=0;j<n-2;j++){
for(i=0;i<n-1;i++){
if(i==0) printf("");
else printf(" ");
}
printf("
\n");
}

for(i=0;i<n;i++){
printf("*");
}
printf("\n");

return 0;

}

投稿2016/03/03 22:55

maiko0318

総合スコア876

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

maiko0318

2016/03/03 23:03

if(n<5 || n>20){ まちがった。3だったね if(n<3 || n>20){
main

2016/03/04 00:29

わぁ、ありがとうございます!まだ初心者なのでよく勉強したいと思います!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問