c言語プログラミングで初項を1.公比2とした等比数列を表示するプログラムで第20項まで表示するプログラムを作成で、
int ___,i;
for(i=1;i<=__;i++)
printf(第%d項=%dn”,i,n);
___;
下線部に何をいれたらいいのですか

A 回答 (3件)

nのイニシャライズは?

    • good
    • 0

ついでに言えば、


https://oshiete.goo.ne.jp/qa/9750817.html
で得られた回答は、
> 表示する値が100000以上のあたいになる直前で
という前提では、残念ながら間違っています。
    • good
    • 0

与えられた情報



初項 1
公比 2
表示範囲 20項まで

あとは、使っているのに宣言されてない変数は?

以上の項目のいずれかが入ります。
ただし、問題を写し間違えたのか、このコードでは、下線部に何を入れるだけでは、意図する動きにはなりません。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aと関連する良く見られている質問

Qc言語のプログラミングの問題で初項を1、公比2とした等比数列を表示するプログラムで for(i=1;

c言語のプログラミングの問題で初項を1、公比2とした等比数列を表示するプログラムで
for(i=1;i<10000;i_)
下線部に何をいれたらいいのですか?
表示する値が100000以上のあたいになる直前で表示を終えるようにしてます

Aベストアンサー

そこにくるのは、ループが回る直前に加わる指示なので、i++、あるいはi=i+1
を入力すれば大丈夫でしょう(*´-`)

Qc言語のプログラミングの問題で50以下の正の偶数を降順(大きい順)で表示するプログラムを作成できる方

c言語のプログラミングの問題で50以下の正の偶数を降順(大きい順)で表示するプログラムを作成できる方お願いします

Aベストアンサー

No3の方から既に回答がでていますが、別解です。
#include <stdio.h>

int main()
{
printf("50\n");
printf("48\n");
printf("46\n");
printf("44\n");
printf("42\n");
printf("40\n");
printf("38\n");
printf("36\n");
printf("34\n");
printf("32\n");
printf("30\n");
printf("28\n");
printf("26\n");
printf("24\n");
printf("22\n");
printf("20\n");
printf("18\n");
printf("16\n");
printf("14\n");
printf("12\n");
printf("10\n");
printf("8\n");
printf("6\n");
printf("4\n");
printf("2\n");
return 0;
}

以下、実行結果です。
------------------------------------
50
48
46
44
42
40
38
36
34
32
30
28
26
24
22
20
18
16
14
12
10
8
6
4
2

No3の方から既に回答がでていますが、別解です。
#include <stdio.h>

int main()
{
printf("50\n");
printf("48\n");
printf("46\n");
printf("44\n");
printf("42\n");
printf("40\n");
printf("38\n");
printf("36\n");
printf("34\n");
printf("32\n");
printf("30\n");
printf("28\n");
printf("26\n");
printf("24\n");
printf("22\n");
printf("20\n");
printf("18\n");
printf("16\n");
printf("14\n");
printf("12\n");
printf("10\n");
printf("8\n");
printf("6\n");
printf("...続きを読む

Qc言語プログラミングで初項を1.公比2とした等比数列を表示するプログラムで表示終了で第20項まで表示

c言語プログラミングで初項を1.公比2とした等比数列を表示するプログラムで表示終了で第20項まで表示するプログラムを作成で、
int ___,i;
for(i=1;i<=__;i++)
[
printf(第%d項=%dn”,i,n);
___;
]
下線部に何をいれたらいいのですか

Aベストアンサー

正しいソースを書きますので、それを見てあてはめてください。
---------------------------------------
#include <stdio.h>
int main()
{
int n=1,i;
for(i=1;i<=20;i++)
{
printf("第%d項=%d\n",i,n);
n = n * 2;
}
return 0;
}
----------------------------------------
以下、実行結果です。
第1項=1
第2項=2
第3項=4
第4項=8
第5項=16
第6項=32
第7項=64
第8項=128
第9項=256
第10項=512
第11項=1024
第12項=2048
第13項=4096
第14項=8192
第15項=16384
第16項=32768
第17項=65536
第18項=131072
第19項=262144
第20項=524288

Qこれがどーゆープログラムなのかわかりません。 教えてください

これがどーゆープログラムなのかわかりません。
教えてください

Aベストアンサー

No.1さんの通りなので、私にベストアンサーは不要ですが、補足で。
書いてある通り素直に読めばいいだけでなんのトリッキーなアルゴリズムでもないですよ。

aが1~9の間以下を繰り返す。
bが1~9の間以下を繰り返す。
cにaとbの乗算結果を代入して出力する。
bが9まで繰り返したら1行改行する。
aが9まで繰り返したら処理結果0を設定してプログラムを終了する。

流れで言えば、
aが1で、bが1,2,3 ... 9と動いていくので、c=1*1 , c=1*2 , c=1*3 .... c=1*9の次
aが2で、bが1,2,3 ... 9と動いていくので、c=2*1 , c=2*2 ...

C言語を日本語にしただけですが、どのあたりで悩んでいるのか書いてくれれば違った回答があるかと。
それともC言語がわからないということでしょうか?
includeとかmainとかわかりますか?

QCのプログラムに無性にイライラするのはおかしいですか?

CQ出版のインタフェース 2017-5 の記事のプログラム例に
for( i=0; i<256; i++){
 for( y =0; y < Y; y++ ){
  for( x = 0; x < X; x++){
   p[0] = img -> imageData[img->widthStep* y + x*3 ]; //B(青色)
   if(p[0]==i){hn[i]++;}
  }
 }
}
がありました。このリストを見て、無性にイライラするのは私だけでしょうか?

なぜ、i,y,x の3重のループで処理しないといけないのか、y,xの2重ループで十分ではないかと思います。

for( y =0; y < Y; y++ ){
 for( x = 0; x < X; x++){
  p[0] = img -> imageData[img->widthStep* y + x*3 ];  //B(青色)
  hn[ p[0] ]++;
 }
}

3重にするならせめて、y,x,i の順にしてp[0]への代入は1回で済ませればと思います。

for( y =0; y < Y; y++ ){
 for( x = 0; x < X; x++){
  p[0] = img -> imageData[img->widthStep* y + x*3 ];  //B(青色)
  for( i=0; i<256; i++){
     if(p[0]==i){hn[i]++;}
  }
 }
}

最近のコンパイラの最適化では、私の書いたようなコーディング(修正?)は無意味なのでしょうか?

CQ出版のインタフェース 2017-5 の記事のプログラム例に
for( i=0; i<256; i++){
 for( y =0; y < Y; y++ ){
  for( x = 0; x < X; x++){
   p[0] = img -> imageData[img->widthStep* y + x*3 ]; //B(青色)
   if(p[0]==i){hn[i]++;}
  }
 }
}
がありました。このリストを見て、無性にイライラするのは私だけでしょうか?

なぜ、i,y,x の3重のループで処理しないといけないのか、y,xの2重ループで十分ではないかと思います。

for( y =0; y < Y; y++ ){
 for( x = 0; x < X; x++)...続きを読む

Aベストアンサー

利点を考えてみました


これを並列処理したときに
スレッド0: hn[0] に p[0] = 0 をカウント
スレッド1: hn[1] に p[0] = 1 をカウント
...
とすれば、
・img -> imageData は読み出すだけなので衝突しない
・hn[i] でアクセスする領域は、スレッド毎に i が違うので、同じ箇所に書き込まれることはない。
となり、排他処理が不要となります。
(もちろん、x,y,i,p[0]はスレッドでローカルな変数とします)

ただ、並列処理のオーバーヘッドや同時並列処理数等を考えると、こんな並列処理はしない方が効率的です。


あるいは、hn[]がシークに時間がかかる領域の場合、
hn[p[0]) で毎回違う位置を探しに行って、その時間が無視できないほどだったら、
先にhnを決めてしまった方が速くなるでしょう。

こちらも、非現実的です。

QC言語で四則演算を使って10を作るプログラム

C言語のプログラミングの問題です。
1桁の整数4つをキーボードから入力して、四則演算で10になる式をすべて出力するという問題で、演算子の優先順位ありで、括弧は使わないとし、数字は入れ替え可能です。
また、プログラムはint型の変数を用いるというものです。
とりあえずは数字入れ替えなしで、次のような力技でソースコードを作ってみたのですが、数字の入れ替えまで考えるとあまりに力技すぎるようなだらだらとしたプログラムになってしまいます。。。
数字の入れ替え可能としてもっと簡単なプログラムを作るにはどのようなソースコードになるのでしょうか。

以下ソースコードです。

#include<stdio.h>
#include<math.h>

int main(void) {

int a, b, c, d = 0;

printf("一桁の整数4つを入力してください。\n");
scanf_s("%d %d %d %d", &a, &b, &c, &d);

if (a + b - c * d == 10)
printf("%d+%d-%d*%d\n", a, b, c, d);
else if (a + b - c / d == 10)
printf("%d+%d-%d/%d\n", a, b, c, d);
else if (a + b * c - d == 10)
printf("%d+%d*%d-%d\n", a, b, c, d);
else if (a + b * c / d == 10)
printf("%d+%d*%d/%d\n", a, b, c, d);
else if (a + b / c - d == 10)
printf("%d+%d/%d-%d\n", a, b, c, d);
else if (a + b / c * d == 10)
printf("%d+%d/%d*%d\n", a, b, c, d);
else if (a - b + c * d == 10)
printf("%d-%d+%d*%d\n", a, b, c, d);
else if (a - b + c / d == 10)
printf("%d-%d+%d/%d\n", a, b, c, d);
else if (a - b * c + d == 10)
printf("%d-%d*%d+%d\n", a, b, c, d);
else if (a - b * c / d == 10)
printf("%d-%d*%d/%d\n", a, b, c, d);
else if (a - b / c + d == 10)
printf("%d-%d/%d+%d\n", a, b, c, d);
else if (a - b / c * d == 10)
printf("%d-%d/%d*%d\n", a, b, c, d);
else if (a * b + c - d == 10)
printf("%d*%d+%d-%d\n", a, b, c, d);
else if (a * b + c / d == 10)
printf("%d*%d+%d/%d\n", a, b, c, d);
else if (a * b - c + d == 10)
printf("%d*%d-%d+%d\n", a, b, c, d);
else if (a * b - c / d == 10)
printf("%d*%d-%d/%d\n", a, b, c, d);
else if (a * b / c + d == 10)
printf("%d*%d/%d+%d\n", a, b, c, d);
else if (a * b / c - d == 10)
printf("%d*%d/%d-%d\n", a, b, c, d);
else if (a / b + c - d == 10)
printf("%d/%d+%d-%d\n", a, b, c, d);
else if (a / b + c * d == 10)
printf("%d/%d+%d*%d\n", a, b, c, d);
else if (a / b - c + d == 10)
printf("%d/%d-%d+%d\n", a, b, c, d);
else if (a / b - c * d == 10)
printf("%d/%d-%d*%d\n", a, b, c, d);
else if (a / b * c + d == 10)
printf("%d/%d*%d+%d\n", a, b, c, d);
else if (a / b * c - d == 10)
printf("%d/%d*%d-%d\n", a, b, c, d);
else {
printf("10になる組み合わせはありません。");
}

return 0;

}

C言語のプログラミングの問題です。
1桁の整数4つをキーボードから入力して、四則演算で10になる式をすべて出力するという問題で、演算子の優先順位ありで、括弧は使わないとし、数字は入れ替え可能です。
また、プログラムはint型の変数を用いるというものです。
とりあえずは数字入れ替えなしで、次のような力技でソースコードを作ってみたのですが、数字の入れ替えまで考えるとあまりに力技すぎるようなだらだらとしたプログラムになってしまいます。。。
数字の入れ替え可能としてもっと簡単なプログラ...続きを読む

Aベストアンサー

No14です。
calcに一部誤りがありましたので、修正しました。
下記URLが正しいソースになります。こちらを使用してください。
http://climbi.com/b/10192/1
不明点があれば、補足してください。

QC言語のビジュアルスタジオについて ビジュアルスタジオをパソコンでインストールしました。 しかし、ビ

C言語のビジュアルスタジオについて

ビジュアルスタジオをパソコンでインストールしました。
しかし、ビルドができません。
最初に空のソリューションをつくり
つぎに新しい項目を追加し、テキストファイルで追加しましたができません

どうしたら良いですか

Aベストアンサー

内部で動いてるnmakeが実行する内容が何処かに表示、あるいはファイルに出力されていますので、それを見てnmakeの動きを追ってください。
ところで今使ってらっしゃるのはVisualStudioCodeにC/C++の開発環境を設定したものでしょうか

Qc言語プログラミング

2つの符号なし整数a,bを受け取りaをbで割った余りを整数で出力するプログラムを記述するにはどのようにすればいいですか?
キーワード: 剰余演算子

Aベストアンサー

c=a%b

Qc言語プログラミングのプログラムを作成して実行すると、エントリーポイントを定義しなければなりませんと

c言語プログラミングのプログラムを作成して実行すると、エントリーポイントを定義しなければなりませんとなるんですがどういうことかわかる方いますか?

Aベストアンサー

main関数は作ってます?

Qプログラミング初心者です!このエラーの意味があまりよくわからないのですがどういう意味なのでしょうか?

このプログラムのエラーの用語?みたいなやつの意味がよくわからないので教えてください!

Aベストアンサー

すみません、画像が不鮮明で、詳細まではわかりません。

class Class1 {}
でよろしいでしょうか?
文法通りに解釈すれば、これでClass1の定義は終了です。
ここで区切られなければならないならない筈が、なんか続きっぽく書いてある、ということでエラーになっています。

その後に続く { 以降は、Class1の外です。
本当は、この後の部分が Class1の内容ではないでしょうか?
だとすると、Class1直後の{} が不要です。


エラーメッセージは、コンピュータの解釈した内容で表示されます。
本当の原因が、エラーメッセージの通りであるとは限りません。
表示された行より前を確認しましょう


また、エラーメッセージが沢山出てもあわてないことです。
一つ間違いがあると、本来正しい箇所まで間違っていると判断されてしまうことがよくあります。
そんなときは、その一つを治すだけで一気にエラーが無くなります。


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング

おすすめ情報