回答数
気になる
-
c言語、structについて
トランプでハート、スペード、ダイヤ、クラブの4種類があります。さらに1から13までの数字があります。なので組み合わせは52種類ありますが、それをstructを使ってランダムで並べたいです。 例 King of Harts Three of Spades Ten of Diamonds Two of Clubs Six of Spades................ こんな感じです。 よろしくお願いします。
質問日時: 2022/02/23 22:18 質問者: oshienaigoogle
ベストアンサー
2
1
-
C#を新卒の研修レベルまでになるには、大まかでいいのでどれくらいの勉強時間が必要ですか? 私の現時点
C#を新卒の研修レベルまでになるには、大まかでいいのでどれくらいの勉強時間が必要ですか? 私の現時点のレベルは、授業で軽くC#を習った程度なのと、javasilverの資格を持ってるレベルです。ですが、ラムダについては殆ど分からない状態です。
質問日時: 2022/02/16 19:22 質問者: ESU159
ベストアンサー
2
0
-
C言語について。
#include <stdio.h> int main(void){ int i,inpSts,numCount,charCount, inpData; char charTable[20],numTable[20]; float heikin; numCount=0; charCount=0; inpSts=0; /*プログラムの開始*/ while(1) { printf("input ?"); inpData=getchar(); if(inpData='*')break; inpSts=isdigit(inpData); switch(inpSts) { case0: charCount++; charTable[charCount-1]=inpData; break; default: numCount++; numTable[numCount-1]=inpData; break; } inpData=getchar(); /*プログラムの終了*/ putchar('\n'); for(i=1;i<=charCount;i++) { printf("(%2d)%c\n,i,charTable[i-1]"); } } } をpaizaで組んだのですが、コンパイルは成功したのですが、input ?からどうすれば良いのでしょうか?教えていただけると助かります。すみません。
質問日時: 2022/02/14 16:40 質問者: メラゾーム
ベストアンサー
11
0
-
Windows10のC++のOprnGLに関する質問です。
添付ファイルに示すように惑星が太陽の周りを公転しています。 惑星の地軸が一定方向を向きません。 注)太陽の地軸は一定方向すなわちY軸の方法を向いています。 Q1)下記のコードで惑星の地軸が、太陽の地軸と同じ方向を向くように 変更する方法があればお教え頂けますと大変有難いです。 void myDisplay(void) { glClear(GL_COLOR_BUFFER_BIT); glPushMatrix(); glColor3d(1.0, 0.0, 0.0); glRotated((double)dayS, 0.0, 1.0, 0.0); glRotated(-90.0, 1.0, 0.0, 0.0); glutWireSphere(1.0, 20, 16); // sun =================== glColor3d(1.0, 1.0, 1.0); glRotated((double)year, 0.0, 1.0, 0.0); glTranslated(3.0, 0.0, 0.0); glRotated((double)day, 0.0, 1.0, 0.0); glRotated(-90.0, 1.0, 0.0, 0.0); glutWireSphere(0.4, 10, 8); // planet ===================== glPopMatrix(); glutSwapBuffers(); } 以上、宜しくお願いします。
質問日時: 2022/02/10 12:03 質問者: shiggy
解決済
1
0
-
前回のクライアント側のプログラムが違ったため 再度どこが違うか教えてください。 最終的にはクライアン
前回のクライアント側のプログラムが違ったため 再度どこが違うか教えてください。 最終的にはクライアント側のipアドレス部を変更して2つのPCで通信させたいと思っています。 以下エラー分 1 ./server.c: 行 12: 予期しないトークン `(' 周辺に構文エラーがあります 2 ./client.c: 行 9: 予期しないトークン `(' 周辺に構文エラーがあります どちらもmain前に出ています。 1サーバー #include <unistd.h> #include <sys/types.h> #include <sys/socket.h> #include <netinet/in.h> #include <arpa/inet.h> #include <stdio.h> #include <string.h> #include <stdlib.h> #define PORT 3000 int main() { int fd_socket, fd_accept; socklen_t len; struct sockaddr_in addr; char buff[BUFSIZ]; if ((fd_socket = socket(AF_INET, SOCK_STREAM, 0)) == -1) { perror("server: socket"); return 1; } addr.sin_family = AF_INET; addr.sin_addr.s_addr = INADDR_ANY; addr.sin_port = htons(PORT); if (bind(fd_socket, (struct sockaddr *)&addr, sizeof(addr)) == -1) { perror("server:bind"); return 1; } if(listen(fd_socket, 5) == -1) { perror("server:listen"); return 1; } if((fd_accept = accept (fd_socket, (struct sockaddr *)&addr, &len)) == -1) { perror("server: accept"); return 1; } if (read(fd_accept, buff, BUFSIZ) == -1) { perror("server:read"); return 1; } strcat(buff, "is received message."); if (write(fd_accept, buff, strlen(buff) + 1) == -1) { perror("server:write"); return 1; } close(fd_accept); close(fd_socket); return 0; } 2クライアント文 #include <unistd.h> #include <sys/types.h> #include <sys/socket.h> #include <netinet/in.h> #include <arpa/inet.h> #include <stdio.h> #include <string.h> #define PORT 3000 int main(int argc, char *argv[]){ int fd_socket; struct sockaddr_in addr; char buff[BUFSIZ]; if ((fd_socket = socket(AF_INET, SOCK_STREAM, 0)) == -1) { perror("client: socket"); return 1; } addr.sin_family = AF_INET; addr.sin_addr.s_addr = inet_addr("127.0.0.1"); addr.sin_port = htons(PORT); if(connect(fd_socket, (struct sockaddr *)&addr, sizeof(addr)) == -1){ perror("client: connect"); return 1; } if(write(fd_socket, argv[1] , strlen(argv[1]) + 1) ==-1){ perror("client: write"); return 1; } if(read(fd_socket, buff, BUFSIZ) == -1){ perror("client: read"); return 1; } printf("message from server: %s\n", buff); close(fd_socket); return 0; }
質問日時: 2022/02/09 09:35 質問者: 超初心者プログラマー
ベストアンサー
3
0
-
オンラインゲームを作る道のりについて。【C++オンリーで】
オンラインゲームを作りたいと思っています。 アルゴリズムだけ勉強しました。使用したい言語はC++。私はCをLinuxで少し触り、オブジェクト指向はJavaで学習した程度です。 ゲームエンジンを使わず、C++のライブラリを使ってオンラインゲームは作れますか。 C++でゲーム部分を作る事が出来るのは知っていますが、オンラインの機能やデータの保存、フレンドのような機能をすべてC++で補えますでしょうか。 ライブラリを使ってもオンライン機能が実装できなければ、C#を使用するところまでは考えています。 また、オンラインゲームの作り方ですが、オフラインで遊べる用の普通のゲームから作り始める予定です。先にゲームのひな型を作っておいて、それにオンラインの機能をつける事はできますか。 C++だけでオンラインゲームが作れるといいのですが。 最後に、C++の学習と、ライブラリの使い方の学習に関してですが、C++の学習はブログ等で勉強していますが、ライブラリの使い方はどのサイトで学習していますか?
質問日時: 2022/02/09 00:29 質問者: pizo225
ベストアンサー
2
0
-
構文エラーが出ているのですが、どこが違うかわからないため教えてください。
以下エラー分 1 ./server.c: 行 12: 予期しないトークン `(' 周辺に構文エラーがあります 2 ./client.c: 行 9: 予期しないトークン `(' 周辺に構文エラーがあります 以下プログラム 1.サーバー #include <unistd.h> #include <sys/types.h> #include <sys/socket.h> #include <netinet/in.h> #include <arpa/inet.h> #include <stdio.h> #include <string.h> #include <stdlib.h> #define PORT 3000 int main() { int fd_socket, fd_accept; socklen_t len; struct sockaddr_in addr; char buff[BUFSIZ]; if ((fd_socket = socket(AF_INET, SOCK_STREAM, 0)) == -1) { perror("server: socket"); return 1; } addr.sin_family = AF_INET; addr.sin_addr.s_addr = INADDR_ANY; addr.sin_port = htons(PORT); if (bind(fd_socket, (struct sockaddr *)&addr, sizeof(addr)) == -1) { perror("server:bind"); return 1; } if(listen(fd_socket, 5) == -1) { perror("server:listen"); return 1; } if((fd_accept = accept (fd_socket, (struct sockaddr *)&addr, &len)) == -1) { perror("server: accept"); return 1; } if (read(fd_accept, buff, BUFSIZ) == -1) { perror("server:read"); return 1; } strcat(buff, "is received message."); if (write(fd_accept, buff, strlen(buff) + 1) == -1) { perror("server:write"); return 1; } close(fd_accept); close(fd_socket); return 0; } 2.クライアント #include <unistd.h> #include <sys/types.h> #include <sys/socket.h> #include <netinet/in.h> #include <arpa/inet.h> #include <stdio.h> #include <string.h> #include <stdlib.h> #define PORT 3000 int main() { int fd_socket, fd_accept; socklen_t len; struct sockaddr_in addr; char buff[BUFSIZ]; if ((fd_socket = socket(AF_INET, SOCK_STREAM, 0)) == -1) { perror("server: socket"); return 1; } addr.sin_family = AF_INET; addr.sin_addr.s_addr = INADDR_ANY; addr.sin_port = htons(PORT); if (bind(fd_socket, (struct sockaddr *)&addr, sizeof(addr)) == -1) { perror("server:bind"); return 1; } if(listen(fd_socket, 5) == -1) { perror("server:listen"); return 1; } if((fd_accept = accept (fd_socket, (struct sockaddr *)&addr, &len)) == -1) { perror("server: accept"); return 1; } if (read(fd_accept, buff, BUFSIZ) == -1) { perror("server:read"); return 1; } strcat(buff, "is received message."); if (write(fd_accept, buff, strlen(buff) + 1) == -1) { perror("server:write"); return 1; } close(fd_accept); close(fd_socket); return 0; }
質問日時: 2022/02/09 00:04 質問者: 超初心者プログラマー
ベストアンサー
1
0
-
自動でコンパイルして、実行結果を表示してくれるIDEを教えてください
Clion みたいに実行ボタンを押したら、自動でコンパイルしてくれて実行結果を表示してくれる、無料のIDEはありますか?
質問日時: 2022/02/08 19:08 質問者: YumYumHJ
ベストアンサー
1
0
-
Windows10のC#のframeworkのPictureBoxに関する質問です。
ツールボックスの中のpictureBoxをドラッグアンドドロップで formに張り付けることは出来ます。 Q1)Formに直接pictureBoxを表示する方法があれば、 お教え頂けますと大変有難いです。 つまり、ドラッグアンドドロップを使用しない。 以上、宜しくお願いします。
質問日時: 2022/02/08 10:48 質問者: shiggy
ベストアンサー
1
0
-
関数へのポインタを返す関数
int型を返す関数へのポインタを返す関数ですが、下記の記述より良い書き方ってありますか? #include <stdio.h> int add(int, int); // int (*i())() typedef int OBJ(int, int); OBJ *i(); int main(int argc, const char * argv[]) { int sum; sum = i()(1, 2); printf("sum = %d\n", sum); return 0; } OBJ *i() { return add; } int add(int x, int y) { return x + y; }
質問日時: 2022/02/05 22:12 質問者: tmiyoshi
解決済
2
0
-
構造体メンバの初期化
C言語の構造体メンバの初期化についてお尋ねします。 下記プログラムの関数func1内(22行目)で、構造体配列メンバを一括で初期化する方法を教えて下さい。 memset(panimal, 0x00, sizeof(panimal)); を使用したら、 「panimalから無効なデータを読み取っています」と警告が出ました。 よろしくお願い致します。 1 #include <stdio.h> 2 #include <string.h> 3 4 struct Animal { 5 char name[10]; 6 int eyes; 7 double weight; 8 }; 9 10 void func1(struct Animal* panimal) { 11 12 // 動物1のメンバ表示 13 printf("func1: name[0] = %s\n", panimal[0].name); 14 printf("func1: eyes[0] = %d\n", panimal[0].eyes); 15 printf("func1: weight[0] = %f\n\n", panimal[0].weight); 16 17 // 動物2のメンバ表示 18 printf("func1: name[1] = %s\n", panimal[1].name); 19 printf("func1: eyes[1] = %d\n", panimal[1].eyes); 20 printf("func1: weight[1] = %f\n\n", panimal[1].weight); 21 22 // 参照元の構造体配列の全メンバ初期化を行いたい場所 23 24 // 動物1のメンバ設定 25 memcpy(panimal[0].name, "Bird", sizeof("Bird")); 26 panimal[0].eyes = 2; 27 panimal[0].weight = 0.3; 28 29 // 動物2のメンバ設定 30 memcpy(panimal[1].name, "Whale", sizeof("Whale")); 31 panimal[1].eyes = 2; 32 panimal[1].weight = 5000.0; 33 34 35 // 動物1のメンバ表示 36 printf("func1: name[0] = %s\n", panimal[0].name); 37 printf("func1: eyes[0] = %d\n", panimal[0].eyes); 38 printf("func1: weight[0] = %f\n\n", panimal[0].weight); 39 40 // 動物2のメンバ表示 41 printf("func1: name[1] = %s\n", panimal[1].name); 42 printf("func1: eyes[1] = %d\n", panimal[1].eyes); 43 printf("func1: weight[1] = %f\n\n", panimal[1].weight); 44 45 } 46 47 int main(void) { 48 struct Animal animal[100]; 49 50 memset(&animal, 0x00, sizeof(animal)); // 構造体配列の初期化 51 52 // 動物1のメンバ設定 53 memcpy(&animal[0].name, "Tiger", sizeof("Tiger")); 54 animal[0].eyes = 2; 55 animal[0].weight = 54.3; 56 57 // 動物2のメンバ設定 58 memcpy(&animal[1].name, "Cat", sizeof("Cat")); 59 animal[1].eyes = 2; 60 animal[1].weight = 3.6; 61 62 func1(&animal[0]); // アドレス(ポインタ)を渡す 63 64 return 0; 65 }
質問日時: 2022/02/05 20:50 質問者: tomoyochan
解決済
2
0
-
関数へのポインタ
下記のプログラムですが、mainで、 char *f(char *, char *); を宣言して、mystrcatをfで記述して動かすことってできますか? #include <stdio.h> #include <string.h> char *mystrcat(char *a, char *b) { char *ptr; int n = 0; ptr = a + strlen(a); while((*(ptr+n) = *(b+n)) != '\0') { n++; } return a; } int main(int argc, const char * argv[]) { // insert code here... char str1[16] = "abc"; char *str2 = "def"; printf("%s\n", mystrcat(str1, str2)); return 0; }
質問日時: 2022/02/04 17:20 質問者: tmiyoshi
ベストアンサー
3
0
-
Win10のVS2022のForm AppからC++コンソールLibraryの質問
Windows10のVS2022のForm AppからC++のコンソールappのLibraryの 関数の呼び出しに関する質問です。 Q1)関数fnStaticLib1()を実行しますが下記のエラーが発生します。 //Syatem.DllNotFoundException:'DLL'StaticLib1.dll'を読み込めず。 このエラーを無くす方法についてお教え頂けますと大変有難いです。 以下のコードをご覧ください。 //Form1.cs====== using System; ....... using System.Windows.Forms; using System.Runtime.InteropServices; namespace FormsApp_cpp { public partial class Form1 : Form { [DllImport("StaticLib1.dll")] static extern void fnStaticLib1(); public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { fnStaticLib1(); //Syatem.DllNotFoundException:'DLL'StaticLib1.dll'を読み込めず。 } } } //framework.h=============== #pragma once #define WIN32_LEAN_AND_MEAN extern "C" { __declspec(dllexport) void __stdcall fnStaticLib1(); } // StaticLib1.cpp =========== //スタティック--->ダイナミックに変更 at prppaty of project| #include "pch.h" #include "framework.h" #include <stdio.h> #include <iostream> void __stdcall fnStaticLib1() { //printf("AAA"); std::cout << "Cの関数fnStaticLib1() " << std::endl; getchar(); } 以上宜しくお願いします。
質問日時: 2022/02/04 10:00 質問者: shiggy
ベストアンサー
1
0
-
ベストアンサー
3
0
-
C言語で分からない所がありますので、ご指南お願いします。
つい先日楽しく学ぶC言語と言う本と、Bit Arrowと言うサイトを使ってプログラミングの勉強を始めましたが、第二章の演習ページの問題の答えがどうしても分かりません。また、答えが載っていなく確認のしようがなく進めない状態ですので、恐れ入りますが答え(記述)がわかる方がいましたら、回答を教えていただけませんか? 問題は以下の通りです。 (ア) %dを利用して半角数字の2を出力してみよう (イ) 2を4回掛けた値を出力してみよう ーーーここまでは分かりますーーー (ウ) 2を4回掛けた値をint型の変数aに格納してみよう (エ) int型の変数bに(ウ)で作成した変数aを格納してみよう (オ) int型の変数cに変数aと変数bをかけた結果を代入してみよう (カ) 変数cを出力してみよう (キ) scanf()を利用し2つの数値を画面から入力し足した結果を表示してみよう 以上です。初歩だとは思いますが、宜しくお願いします。
質問日時: 2022/01/26 15:24 質問者: mango_pie
ベストアンサー
2
0
-
c# ループで出力
お世話になっております。 c#にて、ループを使用して以下のような出力をしてみたいです。 入力 loopNum1=3 loopNum2=2 出力 loopNum1 loopNum2 loopNum1 loopNum2 loopNum1 ご教示お願いします。
質問日時: 2022/01/26 11:25 質問者: りょうsan
解決済
2
0
-
構造体のポインタを引数に取る関数
C言語初心者です。 よろしくお願い致します。 1 #include <stdio.h> 2 3 struct Animal { 4 int eyes; 5 double weight; 6 }; 7 8 // 構造体のポインタ変数を引数に取る関数(2) 9 void func2(struct Animal* panimal) { 10 printf("func2: eyes[%d]\n", panimal->eyes); 11 printf("func2: weight[%f]\n", panimal->weight); 12 } 13 14 // 構造体のポインタ変数を引数に取る関数(1) 15 void func1(struct Animal* panimal) { 16 printf("func1: eyes[%d]\n", panimal->eyes); 17 printf("func1: weight[%f]\n", panimal->weight); 18 func2(panimal); // アドレス(ポインタ)を渡す 19 } 20 21 int main(void) { 22 struct Animal animal = { 2, 54.3 }; 23 24 func1(&animal); // アドレス(ポインタ)を渡す 25 // eyes[2] 26 // weight[54.300000] 27 28 return 0; 29 } (※参考)https://yu-nix.com/blog/2021/11/1/c-struct-pointer/ 上記プログラムを実行すると、 func1: eyes[2] func1: weight[54.300000] func2: eyes[2] func2: weight[54.300000] 画面表示されます。 18行 func2(panimal); の引数ですが、 もしも、引数に&を入力して func2(&panimal); とした場合でも、上記実行結果を得る方法はあるのでしょうか? (構造体のポインタ変数)の&とは?
質問日時: 2022/01/23 17:24 質問者: tomoyochan
ベストアンサー
3
0
-
try~catchを使用した時、戻り値を記述場所はどこが良いのですか?
visual studio c#を勉強中です。 try cacthに関して質問がございます。 下の記述では、エラーになります。 catchの時は、A~Cは、特に使用しないのですが、どこかに記述しなければなりません。 private static int Test(out int A, out int B, out int C, out int D) { // ① //A = B= C= D= 1; try { A = 1; B = 1; C = 1; D = 1; return 0; } catch (Exception) { // ② //A = B= C= D= 1; return -1; } } ①と②の場所どちらが、一般的なのでしょうか? それとも、上記以外の場所なのでしょうか?
質問日時: 2022/01/23 06:59 質問者: GACHAPINA
ベストアンサー
3
0
-
c言語の配列について
以下のようなプログラムを実行したところうまくいきませんでした。 for (int p = 2; p<=20;p++){ int n = pow(2, p); h = T / n; e_max = 0; double x[n]; double v[n]; x[0] = x0; x[0] = 0; for (int j = 0; j < n;j++){ x[j + 1] = 0; v[j + 1] = 0; } で配列の初期化を行っている部分が間違っているのかと思うのですがどうでしょうか? #include<stdio.h> #include<stdlib.h> #include<math.h> #define M_PI 3.14159265358979323846264338327950288 int main(){ double w, k, m, x0; k = 3; m = 4; w = sqrt(k / m); x0 = 1; double x_a, T, h, t, e, e_x, k1, k2, k_1, k_2, e_max, log2e_max; T = 2 * M_PI / w; FILE *file; //FILE *file1; file = fopen("kadai3.1.3.2txt", "w"); //file1 = fopen("kadai3.1.3.2xxa.txt", "w"); for (int p = 2; p<=20;p++){ int n = pow(2, p); h = T / n; e_max = 0; double x[n]; double v[n]; x[0] = x0; x[0] = 0; for (int j = 0; j < n;j++){ x[j + 1] = 0; v[j + 1] = 0; } for (int i = 0; i < n; i++){ t = (i + 1) * h; k1 = v[i]; k2 = v[i] - k / m * (x[i] + k1 * h) * h; x[i + 1] = x[i] + (k1 + k2) / 2 * h; k_1 = -k / m * x[i]; k_2 = -k / m * (x[i] + v[i] * h + 1 / 2 * k_1 * h * h); v[i + 1] = v[i] + (k_1 + k_2) / 2 * h; x_a = cos(w * t); e = x[i + 1] - x_a; e_x = fabs(e); if (e_x > e_max){ e_max = e_x; } // fprintf(file1, "%lf %lf\n", x, x_a); } log2e_max = log2(e_max); fprintf(file, "%d %lf\n", p, log2e_max); } fclose(file); system("pause"); return 0; }
質問日時: 2022/01/19 12:47 質問者: syogakusya.c
ベストアンサー
3
0
-
C# ASP.NETのWEBAPIセキュリティ対策について。 下記のリンクを参考に社内システム向けの
C# ASP.NETのWEBAPIセキュリティ対策について。 下記のリンクを参考に社内システム向けのWEBAPIを作成しました。IISにアプリを登録し動作確認まで完了したためリリースしようと考えていますが、セキュリティ面で少し不安なところがあり質問させてください。 WEBAPIをを標的に外部から攻撃を受けることがあるなどネットで見たことがあります。WEBAPI に対してどの様なセキュリティ対策を行うと良いなどアドバイスを頂けると幸いです。 https://www.pine4.net/Memo/Article/Archives/546
質問日時: 2022/01/18 20:34 質問者: monapiii
解決済
1
0
-
c言語で配列をfprintfで入力すると変な値が出ます。
以下でprintfで表示したときには0,1と正しい値が出るのに、 fprintfでファイルに入れ、エクセルで起こすと変な値が出ました。何が原因でしょうか? int main(){ double x[2]={0}; x[0] = 1; FILE *f; f = fopen("example.txt", "w"); fprintf(f, "%lf %lf", 0, x[0]); fclose(f); printf("%lf", x[0]); system("pause"); return 0; }
質問日時: 2022/01/18 15:14 質問者: syogakusya.c
ベストアンサー
8
0
-
プログラミングC言語について次の問題がわかりません
定数と演算記号(+または*)からなる数式を表現する二分木を使い、演算子の順序を交換する操作を考える。 二分木のノードとなる構造体は、struct node { int type, val; struct node *left, *right; };とする。ノードの種類を type の値により区別する。数値を示すときは type を'v'とし、type が'o'のとき演算子であるとする。数値の場合には値を valに格納する。演算子(+と*の2種類のみ考える)のときは、val は'+'か'*'のいずれかにする。 各関数の役割を述べる。関数 new_node は、ノードとなる構造体を malloc で確保し、各メンバーの値を引数から得た値から設定し、その構造体を戻り値とする。関数 v_nodeは、引数で与えられた数値を表すノードを作成して返すものである。関数 o_node は、演算子を表すノードを作成して返すもので、演算子の種類を第一引数で('+'または'*'として)指定する。第二~第三引数に従って left,right の値が設定される。関数 calc は、引数で与えられた木について演算結果の値を返す。 関数 printTree は字下げをつけて二分木を右側ノードが上になるよう表示する。関数changeNodes は引数で指定されたノードとその右のノードを交換する。これらの関数を完成させることが課題である。 main では、二分木を作成したのち printTree で二分木を表示し、calc を用いて式の値を表示する。さらに changeNodes を呼び出して演算子の順序を交換する。交換を行った後の二分木について printTree で二分木を表示し、calc を用いて式の値を表示している。 実行結果の例 $ ./a.out 初期状態 v:2 op:+ v:1 op:* v:3 式の値:9 changeNodes 実行後 v:2 op:+ v:1 op:* v:3 式の値:5 ノード交換前の状態 ノード交換後の状態 作成する2つの関数について詳しく述べる。 関数 printTree は以下のように作成せよ。 第二引数は字下げ量で、行の先頭からの空白の数を示す。第一引数は表示させる木のノードで、それが NULL なら何もしない。NULL でなければ、以下①~③を行う。①字下げを 3 増やして右部分木を表示する。②引数で渡されたノードの値を表示する。この際に、ノードが数値であれば書式"v:%d"で val を表示し、ノードが演算子であれば書式"op:%c"で val を表示する。③字下げを 3 増やして左部分木を表示する。 関数 changeNodes は以下のように作成せよ。 引数はノードの入れ替えを行う際に先頭とするノード(x)を示す。その右のノード(y)との交換を図のように行うことで、x が y の左になり、y の左であったもの(2)は x の右になる。x の左のもの(1)と y の右のもの(3)はそのままで、関数の戻り値は y になる。なお、x または y が NULL の場合は何もせず x を返す。 提出指示 完成させたソースコードと、「例示用」の箇所をコメントにし、「提出用」の箇所のコメ ントを外して有効にしたプログラムの実行結果を提出。 未完成プログラム #include <stdio.h> #include <stdlib.h> struct node { int type, val; struct node *left, *right; }; typedef struct node* EXP; EXP new_node(int t,int v,EXP l,EXP r){ //ノードを作成し値を設定 EXP x; x=(EXP)malloc(sizeof(struct node)); if(x==NULL){printf("malloc filed");exit(-1);} x->type=t; x->val=v; x->left=l; x->right=r; return x; } EXP v_node(int v){//数値ノード return new_node('v',v,NULL,NULL); } + * 1 2 3 x y + * 3 1 2 x y プログラミングA演習 第 14 回 最終総合演習 EXP o_node(int o, EXP l, EXP r){ //演算子ノード return new_node('o',o,l,r); } int calc(EXP e){ //二分木で示される式の値を計算 int rv,lv; if(e->type=='v')return e->val; rv=calc(e->right); lv=calc(e->left); if(e->type=='o'&&e->val=='+') return rv+lv; if(e->type=='o'&&e->val=='*') return rv*lv; return 0;//デフォルト } void printTree(EXP t,int ind){ // この関数を作成 } EXP changeNodes(EXP t){ // この関数を作成 } int main(void){ EXP n1,n2,n3; // 例示用 n2 = o_node('+',v_node(1),v_node(2)); n1 = o_node('*',v_node(3),n2); printf("初期状態¥n"); printTree(n1,0); printf("式の値:%d¥n",calc(n1)); n1=changeNodes(n1); printf("changeNodes 実行後¥n"); printTree(n1,0); printf("式の値:%d¥n",calc(n1)); /* // 提出用 n3 = o_node('+',v_node(1),v_node(2)); n2 = o_node('*',v_node(3),n3 ); n1 = o_node('*',v_node(4),n2 ); printf("初期状態¥n"); printTree(n1,0); printf("式の値:%d¥n",calc(n1)); n1->right=changeNodes(n1->right); printf("changeNodes-1 実行後¥n"); printTree(n1,0); printf("式の値:%d¥n",calc(n1)); n1=changeNodes(n1); printf("changeNodes-2 実行後¥n"); printTree(n1,0); printf("式の値:%d¥n",calc(n1)); */ return 0;
質問日時: 2022/01/18 14:36 質問者: こなーゆきー
解決済
1
0
-
プログラミングC言語について次の問題がわかりません
プログラミングC言語についてです こちらの問題がわかりません どなたか詳しい方、ご解答をお願いします。 実行時に main 関数の引数としてファイル名(つまり,文字列 1 つ)を受け取り,与えられた名前のテキストファイルの文字数・行数・ファイル名をタブ文字で区切って表示するプログラムを作成せよ.実行時に与えるテキストファイルは,ASCII 文字のみからなるものとし,実行ファイルと同じディレクトリに存在するものとする。 ヒント 行数 = 現れる改行文字の個数 + 1 実行例 $ cat testdata book boots cat dog horse car bus train $ ./prob2 14-2-data.txt 38 3 14-2-data.txt
質問日時: 2022/01/18 14:12 質問者: こなーゆきー
解決済
9
0
-
2つ目のプロセシングの質問です。
転がす速度によってボールが画面の真ん中で止まってしまったり、端に行ってしまったりするにはどうしたらいいでしょうか? また、画像の中でボールを動かすには、どうしたらいいでしょうか?
質問日時: 2022/01/16 21:28 質問者: MeetMickey
解決済
1
1
-
Windows10openGLのバージョンに関する質問です.
Q1)下記のOpenGL Version 3.2 よりも、新しい最新バージョンの 検索方法があれば、お教え頂けますと大変有難いです。 注)つまりVersion 3.2よりも新しい最新のバージョンを知りたいです。 // OpenGL Version 3.2 Core Profile を選択する glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3); glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 2); glfwWindowHint(GLFW_OPENGL_FORWARD_COMPAT, GL_TRUE); glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE); 以上、宜しくお願いします。
質問日時: 2022/01/15 10:59 質問者: shiggy
解決済
1
0
-
このサイトにプログラムのスクリプトは貼れますか?
このサイトにプログラムのスクリプトは貼れますか? 貼れるのであれば貼り方も教えてください!
質問日時: 2022/01/13 20:43 質問者: おにぎり幕府
ベストアンサー
4
0
-
このプログラミングの問題の2つのコードを教えてください。
static int a[] = { 99,21,10,94,56,3,44,12,51,33,84,81,36,99,11,76,26,99,50,51,69,98,4,83,13,21,30,23,93,49,40,51,58,59,83,68,7,80,85,17,33,58,78,2,99,20,87,5,100,97,54,95,57,48,2,52,81,18,29,10,50,10,67,5,56,15,57,41,100,19,30,95,2,78,70,81,91,96,69,22,96,46,2,97,26,22,75,73,8,33,67,94,35,25,72,84,63,62,44,88,28,92,62,46,12,86,56,89,36,94,7,94,94,79,31,45,1,69,67,49,70,13,7,27,1,33,34,4,42,87,37,33,60,16,38,87,81,20,4,37,6,85,54,79,69,37,60,23,98,57,97,68,68,44,58,20,62,22,22,66,25,8,6,19,66,21,65,54,28,79,98,79,17,46,23,57,72,88,48,38,83,29,70,65,54,65,61,34,76,87,12,51,66,24,35,3,45,84,39,96,72,78,80,78,0,40,57,44,12,42,86,77,57,8,7,73,57,90,4,26,57,39,75,45,95,41,34,27,49,61,83,14,77,95,30,1,81,18,44,27,39,98,44,45,16,1,67,37,65,58,63,86,1,95,67,22,85,24,2,45,85,100,12,96,16,85,6,45,26,16,80,37,52,35,4,89,87,97,68,75,6,56,86,70,64,41,98,44,49,16,5,89,59,72,10,25,92,98,70,36,39,39,77,9,58,95,37,49,90,90,33,89,86,44,21,95,0,99,78,1,16,77,29,85,55,83,94,-999 }; ↓問題です https://drive.google.com/file/d/1-AvNNIoOZ8s9hK3Oec1JuMOjgJBa89JX/view?usp=sharing
質問日時: 2022/01/13 16:55 質問者: 柿弾
ベストアンサー
3
0
-
processingの質問です。
ボールを転がすゲームを作成しているのですが、 どこに転がるかわからなかったり(速度によって) コースがそれるというのをやりたいのですが、分からなくて、期限があるので困っています。 玉は既にあります。
質問日時: 2022/01/13 10:08 質問者: MeetMickey
解決済
1
0
-
c言語の質問です。
大きさ size の配列 heap を考える。すなわち、各要素値 heap[i]に対し、2*i+1<size-1 ならば heap[i]<heap[2*i+1]となり、2*i+2<size-1 ならば heap[i]<heap[2*i+2]となるようなデー タ格納を考える。未完成プログラムを以下に示す。 #include <stdio.h>#include <stdlib.h>void printarray(int heap[], int size); void swap(int heap[], int i, int j); void upheap(int heap[], int i); void downheap(int heap[], int i, int size); int main(void){ int data[] = {8, 98, 87, 36, 35, 54, 11, 33, 6, 79}, size = 10; int *heap, i; heap = (int *) malloc(sizeof(int)*size); for(i = 0; i <size; i++){ heap[i] = data[i]; upheap(heap, i); } printarray(heap, size); // heap[0] = heap[--size]; // downheap(heap, 0, size); // printarray(heap, size); return 0; } void printarray(int heap[], int size){ int i; for (i = 0; i <size; i++) printf("%2d%c", heap[i], i == size-1 ? '\n': ' '); } void swap(int heap[], int i, int j){ int tmp = heap[i]; heap[i] = heap[j]; heap[j] = tmp; } void upheap(int heap[], int i){ // ここを作成(問題1) } void downheap(int heap[], int i, int size){ // ここを作成(問題2) } 問題1: 配列 data[i]に格納されている要素値を配列 heap[i]へ順次格納し、課題の条件を満たすよう に、配列 heap の要素値を入れ替える関数 upheap()を作成せよ。関数は指定したプロトタイプに従い、下記の実行結果が得られることを確認せよ。 ヒント:j=2*i+1 または j=2*i+2 ならば、i は(j-1)/2 で求まる。 [実行例] $ ./a.exe 6 8 11 33 36 87 54 98 35 79 $ 問題2: main 関数内のコメントアウトを削除し、heap[0]の値が heap[size-1]に、size が size-1 に置 き換える。課題の条件を満たすように、置き換えられたれた heap[0]の値を入れ替える関数 downheap()を作成せよ。関数は指定したプロトタイプに従い、下記の実行結果が得られることを 確認せよ。 ヒント:heap[i]の値は、2*i+2<size-1ならばheap[2*i+1] とheap[2*i+2]の小さい方と入 れ替えることになる [実行例] $ ./a.exe 6 8 11 33 36 87 54 98 35 79 8 33 11 35 36 87 54 98 79 $
質問日時: 2022/01/11 15:19 質問者: 非公開0000
解決済
2
0
-
c++自作string型について
sanae::str d="hello"; sanae::str t=""; t=d; とやるとなぜかブレークポイントが発生します。 もう一つのパソコンではヒープ領域が壊れてしまったりしていて よくわかりません。 sanae::strのコード(github): https://github.com/ubproject/Useful-headers/blob/main/HeaderFiles/SanaeStr.h ほかにもおかしなところを教えていただけると嬉しいです。 初心者なのでやさしめにお願いします、、、
質問日時: 2022/01/10 00:20 質問者: うさぎ大好き人間
ベストアンサー
1
0
-
Visual Studio Community 2019 C/C++エディッタ 自動インデント機能
Visual Studio Community 2019 Version 16.11.8 エディッタの機能について ある程度コードを記述した状態で、コード途中に if文を挿入すると、以降の行が自動インデントされる機能は有りますか? 言語:C/C++ よろしくお願い致します。
質問日時: 2022/01/09 16:35 質問者: tomoyochan
解決済
2
0
-
プログラムを教えてください。大至急
ArduinoでRFIDリーダRC522を使って生産管理をやろうと思っています。 https://dotstud.io/blog/arduino-use-rfid-reader/を参考にしてやっています。 工具に識別タグを付けて工具を識別する管理をやりたいのですが。 下のプログラムにプラスでRC522センサーにタグをかざしていない間は20秒ごとにNOと出るようにしたいのですが。誰か教えてください。 #include <SPI.h> #include <MFRC522.h> constexpr uint8_t RST_PIN = 9; constexpr uint8_t SS_PIN = 10; #define UID "xx xx xx xx xx xx xx" // 取得した識別子を記述 int led_blue = 8; int led_red = 3; MFRC522 mfrc522(SS_PIN, RST_PIN); MFRC522::MIFARE_Key key; void setup() { Serial.begin(9600); pinMode(led_blue, OUTPUT); pinMode(led_red, OUTPUT); while (!Serial); SPI.begin(); mfrc522.PCD_Init(); mfrc522.PCD_DumpVersionToSerial(); Serial.println(F("Scan PICC to see UID, SAK, type, and data blocks...")); dump_byte_array(key.keyByte, MFRC522::MF_KEY_SIZE); } void loop() { if ( ! mfrc522.PICC_IsNewCardPresent()) { return; } if ( ! mfrc522.PICC_ReadCardSerial()) { return; } String strBuf[mfrc522.uid.size]; for (byte i = 0; i < mfrc522.uid.size; i++) { strBuf[i] = String(mfrc522.uid.uidByte[i], HEX); if(strBuf[i].length() == 1){ strBuf[i] = "0" + strBuf[i]; } } String strUID = strBuf[0] + " " + strBuf[1] + " " + strBuf[2] + " " + strBuf[3] + " " + strBuf[4] + " " + strBuf[5] + " " + strBuf[6]; if ( strUID.equalsIgnoreCase(UID) ){ Serial.println("chantoku"); digitalWrite(led_blue, HIGH); // 青いLEDを光らせる delay(1000); // 1秒待つ digitalWrite(led_blue, LOW); // 青いLEDを消す } else { Serial.println("error!"); analogWrite(led_red, 180); // 赤いLEDを光らせる delay(1000); // 1秒待つ analogWrite(led_red, 0); // 赤いLEDを消す } } void dump_byte_array(byte *buffer, byte bufferSize) { for (byte i = 0; i < bufferSize; i++) { Serial.print(buffer[i] < 0x10 ? " 0" : " "); Serial.print(buffer[i], HEX); } }
質問日時: 2022/01/08 23:27 質問者: coco3030
解決済
1
0
-
プログラミング
私は、趣味でプログラミングをしているのですが php,python,dart,cなどを使い、スマホアプリやネットアプリを作っています。 読んだらいい本や、読むべき本、勉強すべき技術を教えてください。 例、 webを支える技術、良コードを書く技術、GPUを支える技術 などを読みました。
質問日時: 2022/01/08 16:54 質問者: 9うい9p
ベストアンサー
1
1
-
プログラム作成教えてください。大至急
あるプログラムを教えてください。 人感センサーが反応しない時に人はいませんとシリアルポートに送りたいのですが。 使用しているのはArduinoを使用しています。
質問日時: 2022/01/08 00:04 質問者: coco3030
ベストアンサー
1
0
-
C言語 大至急
大至急!!このC言語を教えてください。下にプログラムを書くので??に入るものを教えてください。 tan x(0° ≤ x ≤ 180°) の値を,xを15° 刻みで計算するプログラムを作る.ただし,x = 90° のと きはtan x→ ∞ となってコンピュータでは計算できないため,そのときだけは値を計算せずに infinity と表示させる.tan xの値は数学用のライブラリ「math.h」を include することで, tan(double 型の引数) として計算できるが,引数はラジアンで与えなければならないことに注意 する.また,表示する際, x は半角 3 文字分の幅で揃え,半角スペースを空けた後,tan x の値は 全体で半角 9 文字分,小数点以下で 6 文字分の幅を確保して表示することとする.以下のプログ ラムを参考に作成せよ. #include<stdio.h> ???? int main(void){ int x; double y, pi=3.14159265359; printf(" x tan(x)\n"); for(????? ){ if(???? ){ printf( ??????); } else{ y = ?????; printf( ?????); } } return 0;
質問日時: 2022/01/07 11:59 質問者: めっちゃ食べる
解決済
1
0
-
Visual Studio 2022の『#define _DEBUG』に関する質問です。
Q1)『#define _DEBUG 0』としても、#elsew側の命令が有効になりません。 #elsew側の命令を有効にする、方法があればお教え頂けますと大変有難いです。 #define _DEBUG 0 #ifdef _DEBUG #pragma comment(lib, "opencv_world455d.lib") //<--選択される #else #pragma comment(lib, "opencv_world455.lib") //<--選択される #endif 以上、宜しくお願いします。
質問日時: 2022/01/06 14:09 質問者: shiggy
ベストアンサー
3
0
-
情報技術検定1級を目指しているものです。 C言語の穴埋め問題で8行目①の回答が *weekname[
情報技術検定1級を目指しているものです。 C言語の穴埋め問題で8行目①の回答が *weekname[7] だったのですが、どうして*がつくのでしょうか?
質問日時: 2022/01/05 23:25 質問者: かまぼこここ
ベストアンサー
1
1
-
c言語 バランスが取れた文字列が何組あるか
R L を入力して左右のR、Lが同数であるとバランスが取れた文字列とし、その数を計算したい。 input RLRRLLRLRL output 4 "RL" "RRLL" "RL" "RL" input RLLLLLRRRRLR output 3 "RL" "LLLLRRRR" "LR"
質問日時: 2022/01/04 23:27 質問者: oshienaigoogle
解決済
3
1
-
c言語 入力した二つの数字の足し算を2進数で出す
c入力した二つの数字の足し算を2進数で出したいです。 input 11 1 output 100 コードを求めています!
質問日時: 2022/01/04 23:23 質問者: oshienaigoogle
解決済
1
1
-
C#OpenCv V4にのエラーに関する質問です。
Q1)下記のエラーの解決をお教え頂けますと大変有難いです。 CS0234: Extensionsの名前がなし Cs0103: BitmapConverterの名前はなし Cs0103: ImageLayout_Stretchの名前はなし using System; using OpenCvSharp; using OpenCvSharp.Extensions; //CS0234: Extensionsの名前が存在しない using System.Windows.Forms; namespace opencv_4._1 { internal static class Program { [STAThread] static void Main() { //生成する画面の大きさ var w = 1024; var h = 768; using (var img = new Mat(new Size(w, h), MatType.CV_8UC3)) { for (int y = 0; y < img.Height; y++) { for (int x = 0; x < img.Width; x++) { img.Set(y, x, MyScalar(x, y, x + y)); }//for }//for var hello = "OPENCvSharp V4."; var pos = new Point(50, 100); var font = HersheyFonts.HersheyPlain; var color = new Scalar(255, 255, 255); img.PutText(hello, pos, font, 4.0f, color); using (var form = new Form()) { form.Text = hello; form.Size = new System.Drawing.Size(w, h); form.BackgroundImage = BitmapConverter.ToBitmap(img); //Cs0103: BitmapConverterの名前は存在しない form.BackgroundImageLayout = ImageLayout_Stretch; //Cs0103: ImageLayout_Stretchの名前は存在しない Application.Run(form); } }//using }//Main static int MyScalar(int b, int g, int r) { ...... } }//Program }//namespace
質問日時: 2022/01/04 17:44 質問者: shiggy
ベストアンサー
2
0
-
c++自作String型でfreeするとバグる(std::vector)
#include <stdio.h> #include <vector> #include "SanaeStr.h" int main(void){ std::vector<sanae::str> test; test.add("hello"); printf("%s",test[0].c_str()); } sanae::strのコード(github): https://github.com/ubproject/Useful-headers/blob/main/HeaderFiles/SanaeStr.h 168行目のsfree()でブレークポイントが発生しましたって出てしまいました。 sfree関数は #define sfree(d){free(d);d=NULL;} ってやってあるので同じポインタにfreeをしないようにしてあるのですがなってしまって 訳が分かりません。 (メモリの内容を見るとfreeされているからNULLになってるはずがなぜかNULLになっていない。) 色々つけ足しながら作ってたのでごちゃごちゃしてますがやさしめに教えていただけると嬉しいです。
質問日時: 2022/01/02 23:11 質問者: うさぎ大好き人間
ベストアンサー
2
0
-
【至急!!!】c言語のプログラムを書いて実行しようとすると、英語で「プログラムがリソースを消費しすぎ
【至急!!!】c言語のプログラムを書いて実行しようとすると、英語で「プログラムがリソースを消費しすぎて終了しました」と言う表示が出ました。スマホを再起動しましたが、改善されませんでした。どうしたら良いです か?
質問日時: 2021/12/31 15:56 質問者: グラビティフォールズの専門家
解決済
3
1
-
解決済
1
0
-
C言語 配列の構造体を下位関数で参照する方法につい
次のことを実現するC言語のコーディング方法を教えてください。 メイン関数の処理(1)と同等に処理を下位関数subb()で行いたいです。 --- コーディング例 --- #include <stdio.h> #include <windows.h> typedef struct { int a; int b; } INTT1; typedef struct { INTT1 *inttaP; INTT1 *inttbP; } INTTP; int subb(INTTP inttp[]) { printf("inttp[0].inttaP->a=%d\n",inttp[0].inttaP->a); /* ここにメイン関数の処理(1)と同等の処理をしたい ★★★★ */ printf("inttp[0].inttaP->b=%d\n",inttp[0].inttaP->b); printf("inttp[0].inttbP->a=%d\n",inttp[0].inttbP->a); printf("inttp[0].inttbP->b=%d\n",inttp[0].inttbP->b); printf("inttp[1].inttaP->a=%d\n",inttp[1].inttaP->a); printf("inttp[1].inttaP->b=%d\n",inttp[1].inttaP->b); printf("inttp[1].inttbP->a=%d\n",inttp[1].inttbP->a); printf("(*inttp[1].inttbP).b=%d\n",(*inttp[1].inttbP).b); return 0; } int main(int argc, char* argv[]) { int wk; int rc; INTT1 intt1[10]; INTT1 intt2[10]; INTT1 intt3[10]; INTT1 intt4[10]; INTTP inttp[2]; memset(intt1,0x00,sizeof(intt1)); for (wk=0;wk<9;wk++) { intt1[wk].a=wk+1; intt1[wk].b=intt1[wk].a+10; intt2[wk].a=wk+100; intt2[wk].b=intt2[wk].a+10; intt3[wk].a=wk+1000; intt3[wk].b=intt3[wk].a+10; intt4[wk].a=wk+10000; intt4[wk].b=intt4[wk].a+10; } inttp[0].inttaP=&intt1[0]; inttp[0].inttbP=&intt2[0]; inttp[1].inttaP=&intt3[0]; inttp[1].inttbP=&intt4[0]; printf("intt1[0].a=%d\n",intt1[0].a); printf("intt1[1].a=%d\n",intt1[1].a); /* 処理(1) */ rc=subb(&inttp[0]); return(0); }
質問日時: 2021/12/28 08:45 質問者: k872631
ベストアンサー
6
0
-
C言語の問題です。
この構造体配列の製品データをファイル”ProductData.dat”に保存できるようにしたうえで、書き込んだファイルを読み込んで確認できるように下の画像のプログラムをどのように修正すればよいか教えていただけませんか。 よろしくお願いいたします。。
質問日時: 2021/12/22 03:38 質問者: 甘党派
ベストアンサー
1
1
-
C言語の問題です。
int 型の整数が格納されている配列 int array[]={4,5,6,7,8,1,0,9,3} 要素の合計を要素に 0 があるまで加算する関数を 配列を用いて計算する関数 int sum_array1(int array[]) とポインターを使って計算する関数 int sum_array2(int *ptr) 2つの関数をつくり、それぞれの計算結果を示しなさい。 といった問題なのですが、誰か教えていただけませんか?
質問日時: 2021/12/22 02:57 質問者: 甘党派
ベストアンサー
1
0
-
C言語再帰アルゴリズム
再帰プログラミングの勉強中です。以下のコードは 123 132 213 231 321 312 のように正しく順列を生成するのですが、私の脳内解釈では最後の2つ 321 312 になることがわかりません。312 が2度表示されてしまいます。解釈のどこがおかしいのでしょうか? #include <stdio.h> #define N 3 //perm(N-1) で順列が表示される。 int p[N]; void perm(int); void main(void) { for (int i = 0;i < N;i++) //初期設定 p[i] = i+1; perm(0); } void swap(int *a, int *b) { int tmp; tmp = *a; *a = *b; *b = tmp; } void perm(int i) { int j; printf("perm(%d) → p[%d] = %d\n",i , i, p[i]); //for debug if (i < N-1) { for (j = i;j < N; j++) //Loop { swap(&p[i],&p[j]); // swap1 perm(i+1); // 再帰呼び出し swap(&p[i],&p[j]); // swap2(元に戻す) } } else //(i == N-1) { for (j = 0;j < N;j++) printf("%d",p[j]); printf("\n"); } } 私の脳内解釈(長文ですみません) (0)p[0]=1, p[1]=2, p[2]=3 初期値 (1)main() で perm(0) を呼び、その Loop において i=j=0 で Swap1 を実行する。p[] に変化なし。 (2)perm(1) を呼び、その Loop において i=j=1 で Swap1 を実行する。p[] に変化なし。 p[0]=1, p[1]=2, p[2]=3 (123) の状態で perm(2) を呼ぶ。 (3)perm(2) では必ず B-Loop が実行され、123 が表示される。 (4)(2)の perm(1) に戻り i=j=1 で Swap2 を実行する。最初の Loop だから p[] に変化なし。 次の Loop で i=1、j=2 となるから Swap1 を実行する。 p[0]=1, p[1]=3, p[2]=2 (132) となるので perm(i+1)=perm(2) をんで132 が表示される。 (5)(4)の perm(1) に戻り Swap2 を実行する。i=1、j=2 なので、 p[0]=1, p[1]=2, p[2]=3 (123) となるが、次の Loop で j>2 となるので Loop を抜けて(1)の perm(0) に戻る。よって(2)に続いて123 が表示されることはない。 (6)(1)の perm(0) で Swap2 を実行する。i=j=0 だから p[] に変化なし。 次の Loop で i=0、j=1 となるから、Swap1 を実行する。 p[0]=2, p[1]=1, p[2]=3 (213) として perm(i+1)=perm(1) を呼ぶ。 (7)perm(1) で Swap1 を実行する。最初の Loop は i=j=1 だから p[] に変化なし。 そのまま perm(i+1)=perm(2) を呼ぶと 213 が表示される。 (8)(7)の perm(1) に戻り Swap2 を実行する。i=j=1 だから p[] に変化なし。 次の Loop で i=1、j=2 なので、Swap1 を実行する。 p[0]=2, p[1]=3, p[2]=1 (231) となるから perm(i+1)=perm(2) を呼ぶと 231 が表示される。 (9)perm(1) に戻り i=1、j=2 で Swap2 を実行する。 p[0]=2, p[1]=1, p[2]=3 (213) となるが、次の Loop で j>2 なので Loop を抜けて(6)の perm(0) に戻る。したがって 213 が表示されることはない。 (10)(6)の perm(0) で Swap2 を実行する。i=0、j=1 だから p[0]=1, p[1]=2, p[2]=3 (123) 次の Loop で i=0、j=2 となる。Swap1 を実行すると p[0]=3, p[1]=2, p[2]=1 (321) となるから perm(i+1)=perm(1) を呼ぶ。 (11)perm(1) で Swap1 を実行する。最初の Loop は i=j=1 だから p[] に変化なし。 次の Loop で i=1、j=2 となる。Swap1 を実行すると p[0]=3, p[1]=1, p[2]=2 (312) そのまま perm(i+1)=perm(2)を呼ぶと312が表示される。 (12)(11)の perm(1) に戻り Swap2 を実行する。i=1、j=2 だから p[0]=3, p[1]=2, p[2]=1 (321) 次の Loop で i=1、j=2 なので、Swap1 を実行する。 p[0]=2, p[1]=3, p[2]=1 (312) perm(i+1)=perm(2) を呼ぶと312 が表示される。 (13)(12)の perm(1) に戻る。次の Loop で j>3 なので Loop を抜けて(10)まで戻り、(1)の perm(0) で Swap2 を実行する。i=1、j=2 だから p[0]=3, p[1]=2, p[2]=1 (321) となるが、次の Loop では j>3 となり、Loop を抜けて main() に戻るので 321 は表示されない。
質問日時: 2021/12/21 22:27 質問者: アンドロメダシティ
ベストアンサー
2
0
-
C言語の問題について
入力された二つの値の,絶対値が大きいほうの実数値を絶対値が小さいほうの実数値で割った値を表示するプログラムを教えてください。
質問日時: 2021/12/21 22:23 質問者: riringon
解決済
5
0
-
このプログラムがわかりません
配列を表示と配列の先頭から3つだけ表示は自力でできたのですが、2番目の配列要素から3つ表示するというのがどうしてもできなくて困っています。 誰か教えていただけませんかお願いいたします。
質問日時: 2021/12/21 16:48 質問者: 甘党派
ベストアンサー
2
0
-
C#のコンパイルエラーCS0120に関する質問です。
Q1)下記のコードで正しいコードをお教え頂けますと大変有難いです。 注)出来れば、static属性を追加する方法ではない方法で。 namespace BBB { class Program { public int Add(int x, int y) { return x + y; } private static int Addx(int x, int y) => x + y; { ans = Add(10, 20); //エラー CS0120 静的でないフィールド、メソッド、またはプロパティ 'Program.Add(int, int)' で、オブジェクト参照が必要です } 以上、宜しくお願いします。
質問日時: 2021/12/21 08:51 質問者: shiggy
ベストアンサー
1
0
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
最新のコラム/記事
-
マッチングアプリで出会ったカップルは成婚率が高い!?結婚カウンセラーに聞いてみた
パートナーとの出会いの場として、もはや主流となったネット婚活やマッチングアプリ。中でも手軽に登録できるマッチングアプリは、10代から50代と幅広い年代が利用している。一方で、“相手の目的が投資関係の詐欺や...
-
メダロット:第250話「Vol.250※期間限定公開」
天才メダロッター六葉カガミの戦いを描く「メダロット再~リローデッド~」(漫画:伯林、監修:イマジニア)、20周年を迎えた『メダロット』が新たなストリーでココに再起動!!★全話無料で読める、週刊メダロット通信...
-
メダロット:第249話「Vol.249※期間限定公開」
天才メダロッター六葉カガミの戦いを描く「メダロット再~リローデッド~」(漫画:伯林、監修:イマジニア)、20周年を迎えた『メダロット』が新たなストリーでココに再起動!!★全話無料で読める、週刊メダロット通信...
-
日本古来の伝統工芸「金継ぎ」で修復した食器は前と同じように使えるの?
大切にしている食器が割れてしまったら、きっと誰もが「元に戻したい」と願うだろう。「教えて!goo」にも「割ってしまったお気に入りの食器を復活できる?」という質問があり、最適な方法について様々な意見が寄せら...
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
逆コンパイルと逆アセンブルの違い...
-
C言語について。
-
これて逆じゃないですか?
-
C言語について。
-
コンソールアプリを作成するのにお...
-
私は
-
C言語 1から20までの逆数の和を求め...
-
Windows Formアプリからコンソール...
-
プログラムの実行時に'<'でリダイレ...
-
パソコン
-
あんまり考えたくないけど
-
10進数からN進数に変換するプログラ...
-
バッチファイルで以下のようなもの...
-
c#のTLS1.2での通信について
-
だいがくの電し書籍で
-
VisualStudio2022でC言語プログラム...
-
VisualStudioでのプログラミングに...
-
C言語って古いですか?
-
ホワイトハッカーを目指そうかと思...
-
【C言語】全角文字の配列を、全角の...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
プログラム言語について c言語もコ...
-
C#でログファイルにファイルパスが...
-
Python、プログラミングについて質...
-
バッチファイルで以下のようなもの...
-
プログラミングの課題がわからない...
-
だれがとけるの?
-
0 == False はいいけど
-
CPUが16bitでも32bitOSでコンパイル...
-
なんで
-
c++でテンプレートのコードでわから...
-
プログラマーです。このDB設計だと...
-
c言語のリダイレクトによる円の描...
-
プログラミングでArduinoのc++かc#...
-
大量のデータを読み込んで表示する...
-
応用情報技術者試験の令和元年秋、...
-
複素関数はどこはあんまりやらなく...
-
gccを行ってもexeファイルが生成さ...
-
c言語
-
swift言語の最適化 swift最適化を最...
-
VisualStudio2022でC言語プログラム...
おすすめ情報