forのプログラムについて

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
ラン

forのプログラムについて

#1

投稿記事 by ラン » 16年前

・問題
キーボードから数値を入力して、その数値に10を加えた値までを表示するプログラムを作成しなさい。

・出力例(5を入力した場合)
input=5
5 6 7 8 9 10 11 12 13 14 15

です。私もプログラムを考えているのですが、全然わかりません。
個人的に問題解いてるのですが答えがなくてできません。
宿題でもないので急ぎはしません。
ゆっくりでいいのでプログラムを教えてください。

Dixq (管理人)

Re:forのプログラムについて

#2

投稿記事 by Dixq (管理人) » 16年前

解るところから少しずつといていき、解らなくなったところでその点を重点的に勉強するスタンスをとってはどうでしょう。

1 scanf関数でキーボードから整数を読み込み、表示するだけのプログラムを書きましょう

2 0~10までの整数をループ文を使って表示するプログラムを書きましょう

3 0~問題1で読み込んだ整数までの整数を表示するプログラムを書きましょう。

そして・・・

・問題
キーボードから数値を入力して、その数値に10を加えた値までを表示するプログラムを作成しなさい。

こうして順番に問題をといていけばわかりやすいのではないでしょうか。
躓いたらどの辺でつまずいて、何がわからないか詳しく教えて下さい。

また、聞く前に最大限自分で調べてみて下さい。
とりあえずscanf関数の使い方がわからなければ「scanf」でぐぐれば大量に使い方説明が出てきます。

ラン

Re:forのプログラムについて

#3

投稿記事 by ラン » 16年前

ありがとうございます。

#include <stdio.h>
void main()
{
int ia;

scanf("%d",&ia);

for(; ia<10; ia++){
printf("%d ",ia);
}
}

ここまで作れたのですが、入力した文字から10個表示ができません。
どうすればいいですか?

ibis

Re:forのプログラムについて

#4

投稿記事 by ibis » 16年前

あー。
10以下の数しか表示できないんですね。

入力された値からカウントアップするのは別の変数で行い、
その変数とiaとの差が10以下か否かをループの条件にする。
というのはどうでしょうか。

もうちょい具体的には、こんな感じでしょうかね。
int x = ia;
for(; x-ia<=10; x++){
    printf("%d ",x);
}

ラン

Re:forのプログラムについて

#5

投稿記事 by ラン » 16年前

ありがとうございます。
でも、よくわかりません。
初心者なものですみません。

もう少しわかりやすいプログラムはありませんか?

初級者

Re:forのプログラムについて

#6

投稿記事 by 初級者 » 16年前

#include <stdio.h>

int main(void)
{
    int n, i;
    
    printf("input=");
    scanf("%d", &n);
    for (i = n; i <= n + 10; i++) {  // iはnから(n+10)まで変化する
        printf("%d ", i);
    }
    return 0;
}

stack

Re:forのプログラムについて

#7

投稿記事 by stack » 16年前

私の作成したこのプログラムはいかがでしょうか?キーボードから数値を入力する部分と、結果を出力する部分は関数化し、mainの中でそれらを呼び出すスタイルになりますが・・・・。mainの中で全部処理するなら
#include <stdio.h>

int main(void)
{
int i, num;

/* 整数のキー入力 */
printf("input = ");
scanf("%d", &num);

/* 計算結果の処理部分(ここをしっかり勉強して下さい) */
for (i = 0; i <= 10; i++) {
printf("%d ", (num + i));
}

printf("\n"); /* 最後に改行文字を出力して終了 */

return (0);
}

としてはいかがでしょうか?

ラン

Re:forのプログラムについて

#8

投稿記事 by ラン » 16年前

ありがとうございます。
そのプログラムを参考にオリジナルを考えてみます。
また、よろしくお願いします。

ibis

Re:forのプログラムについて

#9

投稿記事 by ibis » 16年前

わかりませんでしたか。
すみません。

全文ではこうなります。
先程の断片よりはわかりやすいでしょうか?
#include <stdio.h>
void main()
{
    int ia;
    int x;
    
    scanf("%d",&ia);
    
    x = ia;
    
    /*for(; ia<10; ia++){
        printf("%d ",ia);
    }*/
    for(; x-ia<10; ia ++){
        printf("%d ",x);
    }
}

ibis

Re:forのプログラムについて

#10

投稿記事 by ibis » 16年前

あら、すでに別の回答で解決してる。

ラン

Re:forのプログラムについて

#11

投稿記事 by ラン » 16年前

ibisさん。
本当にありがとうございます。
すごくわかりやすいです。
初心者なもので迷惑かけてすみせん。また、よろしくお願いします。

ラン

Re:forのプログラムについて

#12

投稿記事 by ラン » 16年前

他のプログラムを質問します。

・問題
キーボードから数値を入力して、その数値に10を加えた値までを表示するプログラムを作成しなさい。

・出力例(4の場合)
input: 4
田中太郎
田中太郎
田中太郎
田中太郎

です。よろしくお願いします。

yu

Re:forのプログラムについて

#13

投稿記事 by yu » 16年前

最初の問題と同じような気がしますが?・・・

出力例は違いますが。


それと、一度自分でプログラムを作ってみましたか?
作ってみて分からないところがあったら教えてください。

こんなこと言ってる自分ですが、まだプログラムを始めて2か月ですorz

ラン

Re:forのプログラムについて

#14

投稿記事 by ラン » 16年前

すみません。
問題をうち間違えました。

・問題
キーボードから数値を入力し、その入力された数値の回数だけ自分の名前を表示するプログラムを作成しなさい。

・出力例(4の場合)
input: 4
田中太郎
田中太郎
田中太郎
田中太郎

です。プログラムを教えてください。
自分でも考えているのですが全然わからないです。

conio

Re:forのプログラムについて

#15

投稿記事 by conio » 16年前

-----------------------------
#include<stdio.h>

int main(void){

int x,i;

/*xに値を入れさせる*/

for(i = 0; i < x; i++)
/*名前を表示させる処理*/

return(0);
}
-----------------------------
こんな感じでどうでしょう?
値を入れさせる処理はscanf関数、表示させる処理はprintf関数で出来ると思います。

ラン

Re:forのプログラムについて

#16

投稿記事 by ラン » 16年前

ありがとうございます。
具体的なプログラムはどうなりますか?

conio

Re:forのプログラムについて

#17

投稿記事 by conio » 16年前

上のプログラムはほぼ答えです。
もし、プログラムをどう書けばいいのか全然見当がつかない、という事であれば
printf文、scanf文を学習すれば書ける様になると思います。

とりあえず、解答です↓
---------------------------------
int main(void) 
{  

int x,i; 
printf("値を入力してください:");
scanf("%d",&x);

for(i = 0; i < x; i++) 
printf("田中太郎\n");

return 0; 
} 
--------------------------------

ラン

Re:forのプログラムについて

#18

投稿記事 by ラン » 16年前

ありがとうございます。

ラン

Re:forのプログラムについて

#19

投稿記事 by ラン » 16年前

・問題
キーボードからアルファベット小文字を1文字を入力し、その続きからzまでを表示するプログラムを作成しなさい。

・実行結果(h)を入力した場合
moji?h
i j k l m n o p q r s t u v w x y z

です。自分の作ったプログラムを貼ります。
#include <stdio.h>
void main()
{
char i,n;

printf("moji?");
scanf("%c",&n);

for(i=n+1; i<='Z'; i++){
printf("%c ",i);
}
}

です。このプログラムで動きました。
で、小文字を入力したときに大文字として出力できません。
どこを変更すればいいですか?

conio

Re:forのプログラムについて

#20

投稿記事 by conio » 16年前

上記のプログラムは、こちらでは動きませんでした。
数字文字とは違い、アルファベット文字には規則性が保証できないので、
インクリメントして表示させる方法はあまり良いとは思えません。


動かなかったので、個人的にプログラムを作りました。
大文字にしたい時はtoupper関数を使えばいいと思います。
--------------------------------------------
#include <stdio.h> 
#include <ctype.h>
void main() 
{ 

char mozi[27]="abcdefghijklmnopqrstuvwxyz";
char n,i=0;

printf("文字を入力してください:"); 
scanf("%c",&n); 

while(n != mozi)
i++;

while(mozi[++i] != 0){
	printf("%c",toupper(mozi));
}

}
--------------------------------------------

通りすがり

Re:forのプログラムについて

#21

投稿記事 by 通りすがり » 16年前

簡単な問題の質問トピの時だけ出てきて答えだけ書いて去っていく人どうなの?
本人気づいてないかもしれないけど、色んな方向からアドバイス試みている人に対して失礼です。
答えのプログラムだけ教えるのは適切な回答じゃない。質問者が考え方より答えを望んでいる場合は余計に。

ムンバ

Re:forのプログラムについて

#22

投稿記事 by ムンバ » 16年前

通りすがって、ご意見だけ書いてくのも失礼だと思いますけど。私の事ですか?^^;

>本人気づいてないかもしれないけど、色んな方向からアドバイス試みている人に対して失礼です。

ごめんなさい。

conio

Re:forのプログラムについて

#23

投稿記事 by conio » 16年前

丸投げではなく、"考えた結果分からない、エラーが取れない"という事であれば、アドバイスをするのは良いと思います。
上記のstackさんibesさん初級者さんのように。

一応、自分はプログラムの一部を日本語で書く等して、そのまんまの答えを書くことは出来るだけ
避けています。
少しでも考える余地があれば、練習になると思っております。

閉鎖

“C言語何でも質問掲示板” へ戻る