回答数
気になる
-
プログラミング c言語
初心者のためコードや説明が拙いと思いますが、ご了承ください。 今この問題に取り組んでいます。 https://onlinejudge.u-aizu.ac.jp/problems/ITP1_6_B 私はC言語で以下のようにコードを書きましたが、コンパイルは通ったものの実行すると上手くいきません。修正すべきところを教えて下さい。 うまくいっていないと思う箇所 ・カードの枚数nを入力してもその枚数分読み込めない。 ・最後に入力したカードが読み込まれない。 自分が書いたコード; #include <stdio.h> #include <string.h> struct playingcard { int number; char suit; }; int main(void) { int n; struct playingcard card[52]; int s[13], h[13], d[13], c[13]; int sn=1, hn=1, dn=1, cn=1; int count = 0; scanf("%d", &n); for (int i = 0; i < (n+1); i++) { scanf("%c %d", &card[i].suit, &card[i].number); } for (int j = 0; j < n; j++) { if (card[j].suit == 'S') { s[sn] = card[j].number; sn++; } else if (card[j].suit == 'H') { h[hn] = card[j].number; hn++; } else if (card[j].suit == 'C') { c[cn] = card[j].number; cn++; } else if (card[j].suit == 'D') { d[dn] = card[j].number; dn++; } } for (int x = 1; x < 14; x++) { for (int a = 1; a < (sn + 1); a++) { if (x == s[a]) { count++; } } if (count == 0) { printf("S %d\n", x); } count = 0; } for (int x = 1; x < 14; x++) { for (int a = 1; a < (hn + 1); a++) { if (x == h[a]) { count++; } } if (count == 0) { printf("H %d\n", x); } count = 0; } for (int x = 1; x < 14; x++) { for (int a = 1; a < (cn + 1); a++) { if (x == c[a]) { count++; } } if (count == 0) { printf("C %d\n", x); } count = 0; } for (int x = 1; x < 14; x++) { for (int a = 1; a < (dn + 1); a++) { if (x == d[a]) { count++; } } if (count == 0) { printf("D %d\n", x); } count = 0; } }
質問日時: 2023/03/07 01:05 質問者: godhaya
解決済
4
0
-
関数について
お世話になります エクセルで 60点以上ならA 59点以上30点までB 29点以下ならC としたい時 関数はどうなりますか? 点数はI2に入っていて、となりのJ2のところにABCをいれます
質問日時: 2023/03/06 12:44 質問者: pascalien
解決済
4
0
-
visual studio 2019を使っているのですが、何か間違ったところをクリックしてしまい画像
visual studio 2019を使っているのですが、何か間違ったところをクリックしてしまい画像のようにメインプログラムやヘッダファイルが開けなくなりました。 どうすれば良いですか? どうか教えて下さい。
質問日時: 2023/03/06 06:46 質問者: akitv
解決済
2
0
-
数字の単位 何故10m>0.003なのかわかりません 数字の単位で何故10mより0.003の方が小さ
数字の単位 何故10m>0.003なのかわかりません 数字の単位で何故10mより0.003の方が小さいのかわかりません 10m>0.003>0.1μ とあります。 解説してください It入門の勉強をしています
質問日時: 2023/03/06 00:20 質問者: ちわちわwww
ベストアンサー
2
0
-
C言語階乗の総和を求める
C言語の問題です 1!からn!までの合計値を求めるnの範囲は(1以上10以下) 5を入力した場合153 このような問題で階乗を求めるプログラムはできたのですが総和を求めることができないので修正方法を教えてほしいです。 #include int main { int n,sum=1,i; printf("1以上10以下の整数を入力してください\n") scanf("%d,&n); if(n<1II n>10) { return 1; } i=1; while(i<=n) { sum *= i; i++; } printf("%d\n",sum) return 0; } 実行結果は5を入力したら120になってしまいます
質問日時: 2023/03/04 23:31 質問者: ponhei.
解決済
2
0
-
ベストアンサー
5
0
-
C言語 コマンドプロンプトについて。
windows 11で、C言語をDOS窓から使いたいのですがどうすれば良いのでしょうか?教えていただけると嬉しいです。
質問日時: 2023/02/26 09:15 質問者: メラゾーム
ベストアンサー
36
0
-
C++のcinの動作
下記のc++のcinの動作について質問があります。分かる方、教えてください。 コンパイルして実行後、標準入力から、3.14yと入力すると、 val = 3.39 ch = y の期待通りの結果になるのですが、 3.14xと入力すると、 val = 0.25 ch = 3 の結果になってしまいます。 調べて見ると、最後に入れる数値以外の文字(この場合の、xやy)が、文字によってdoubleと認識されて取り込まれる場合があるようで、その場合取り込まれた文字がdoubleに変換されて0になって、入力ストリームが最初の位置に戻されるようなのですが、これは正しい動作なのでしょうか?それとも書き方に何かまずい箇所とかあるのでしょうか? #include <iostream> using namespace std; int main() { char ch; cin >> ch; switch (ch) { case '.': case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': { //cout << "here" << endl; cin.putback(ch); double val; cin >> val; val += 0.25; cout << "val = " << val << endl; } default: cin >> ch; cout << "ch = " << ch << endl; } return 0; }
質問日時: 2023/02/26 00:13 質問者: tmiyoshi
解決済
5
0
-
解決済
11
0
-
C++のcase文の書き方
以下のC++の構文で、 Non-void function does not return a value in all control paths のエラーが出るのですが、 最後のdefaultの所で、Token型を返してないからだと思われるのですが、 エラーを発生させないで、error()例外を呼び出せるように書く方法とかあるのでしょうか? Token get_token() // read a token from cin { char ch; cin >> ch; // note that >> skips whitespace (space, newline, tab, etc.) switch (ch) { //not yet case ';': // for "print" //not yet case 'q': // for "quit" case '(': case ')': case '+': case '-': case '*': case '/': return Token(ch); // let each character represent itself case '.': case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': { cin.putback(ch); // put digit back into the input stream double val; cin >> val; // read a floating-point number return Token('8', val); // let '8' represent "a number" } default error("Bad token"); } }
質問日時: 2023/02/24 20:50 質問者: tmiyoshi
解決済
4
0
-
C++の標準入力の書き方
C++で、 標準入力の<<を使って、標準入力から char c; と定義した変数cにNULL('\0')を入れたい場合、 どのように書けば良いのでしょうか?
質問日時: 2023/02/23 23:53 質問者: tmiyoshi
解決済
6
0
-
ファイルがあるのにエクスプローラでは存在しない
検索すると「RECV0000」があるのに、エクスプローラでは見えません。 どういうことでしょうか? このファイルはsftpで受信したファイル(UNIXサーバから?)なので、パーミッションの問題で表示できないのかとも思ったのですが、よくわかりません。エクスプローラで見えるようにしたいです。
質問日時: 2023/02/15 17:36 質問者: taka_2015_2016
解決済
4
1
-
C# 標準出力のencodingをutf8にする
visual studioでC# consoleアプリを作成しています。 Console.WriteLineの出力encodingをutf8にしたいのですが、ネットで調べた Console.OutputEncoding = Encoding.GetEncoding("utf-8"); を挿入すると 次の行のConsole.WriteLine("東京");で例外が発生し、 System.IO.IOException: 'ハンドルが無効です。 となります。 どのようにすれば良いか教えてください。
質問日時: 2023/02/15 12:38 質問者: yukimesan
解決済
1
0
-
プログラム内から、MIDIファイルの一部分だけを再生する方法
プログラム内からMIDIファイルの再生は、mciSendString関数を使うことで可能ですが、一部分だけ、例えば、「14小節目から17小節を再生」する方法がわかりません。 OSはWin10、プログラムはC言語でお願いします。 なお、midiOutShortMsg関数とSleep関数の組み合わせで、MIDIファイルの当該部分を再生する方法を試しましたが、Sleep関数の精度が低いため、まともな再生になりませんでした。
質問日時: 2023/02/15 11:08 質問者: usa3usa
ベストアンサー
1
0
-
win10で、正確な待ち時間の作り方
ミリ秒単位で処理を止められる Sleep関数を使ってみたのですが、 時間誤差が、最大で18ms もあり、使い物になりません。 win10で、1ms精度での待ち時間の設定の方法ありますか? ---- 動作確認プログラム ---- #include <windows.h> #include <stdio.h> for(j=14; j<48; j++) { t0 = timeGetTime(); Sleep(j); dt = timeGetTime() - t0 - j; // 本来なら0になるはず printf("%d ",dt); } の結果が以下の通り、 18 6 6 3 14 13 11 15 10 8 14 6 5 11 3 2 7 1 15 5 13 2 11 16 9 14 7 13 5 10 3 8 1 7 Unixであれば、マイクロ秒単位で処理を止められる usleep関数 があるようですが、Win10では使えません。
質問日時: 2023/02/14 18:28 質問者: usa3usa
ベストアンサー
6
1
-
c言語 プログラムのエラー
プログラムがなぜ正しく出力されないのかわからないです。 (課題) コマンドライン引数で文字列(アルファベットの大文字または小文字)を受け取り連続している個数を数で表す。(例 aafwGGg → a2f1w1G2g) (プログラム) #include<stdio.h> #include<string.h> //arrでどの文字が何回連続になっているかを記録する。 int main(int argc, char *argv[]){ int i, j = 0, counter = 1; char *str; //文字列のコピー str = argv[1]; //配列arrの初期化:全て0の文字数分の要素数 char arr[(int)strlen(str)]; for(i = 0; i <= (int)strlen(str) - 1; ++i){ arr[i] = '0' + 0; } //どの文字が何回連続になっているかの測定 for(i = 0; i <= (int)strlen(str) - 1; ++i){ if(str[i] == str[i + 1]){ counter += 1; } if(i == (int)strlen(str) - 1){ arr[j] = str[(int)strlen(str) - 1]; //couterの数字を代入 if(counter >= 10){ arr[j + 1] = '0' + counter / 10; arr[j + 2] = '0' + counter % 10; j += 1; } else{ arr[j + 1] = '0' + counter; } } if(str[i] != str[i + 1] && i != (int)strlen(str) - 1){ arr[j] = str[i]; //counterの数字を代入 if(counter >= 10){ arr[j + 1] = '0' + (counter / 10); arr[j + 2] = '0' + (counter % 10); j += 3; } else{ arr[j + 1] = '0' + counter; j += 2; } counter = 1; } arr[j + 2] = '/'; } for(i = 0; arr[i] != '/'; ++i){ printf("%c", arr[i]); } printf("\n"); return 0; } 始めと終わり部分は正しいのですが、真ん中部分が誤った出力になってしまいます。 一定の範囲が常におかしいようです。 よろしくお願いします。
質問日時: 2023/02/11 20:31 質問者: ktnabe
ベストアンサー
1
0
-
C#の基本文法が詳しく書かれている教科書的な本ありますか
私はJAVAの勉強で オラクル認定資格教科書 Javaプログラマ Silver SE11 オラクル認定資格教科書 Javaプログラマ Gold SE11 この2冊を勉強したら体系的、網羅的に基本文法の把握をすることが できました。 同様にC#でもこのような体系的、網羅的に基本文法を学べる 書籍はありますでしょうか?ご存じの方いらっしゃいましたら教えてください。
質問日時: 2023/02/11 03:48 質問者: 39OK
解決済
2
0
-
S-JIS → JIS コード変換するには
VisualStudio2013 全角文字のS-JISコードを元に、JISコードに変換する方法を教えて下さい。 よろしくお願い致します。
質問日時: 2023/02/09 23:55 質問者: tomoyochan
解決済
3
0
-
c言語 配列とポインタについて
コマンドライン引数で文字列を一つだけ与え、一文字ずつ表示させる関数です。 なぜ、ポインタであるargv[1]を引数として、配列を受け取るはずのtestに与えてもエラーが出ないのでしょうか? 感覚的には型が違うというエラーが出そうなのですが、、、 よろしくお願いします。
質問日時: 2023/02/09 22:53 質問者: ktnabe
ベストアンサー
3
0
-
c言語 コマンドライン引数
c言語のコマンドライン引数についてです。 コマンドライン引数で与えられた文字列(先頭の一つのみ)を表示するプログラムを作りました。 上のプログラムは正常に動作した一方で、下のプログラムは警告が出て、走らせることもできませんでした。(以下警告文) -------------------------------------------------------------------------- format specifies type 'char *' but the argument has type 'char' [-Wformat] -------------------------------------------------------------------------- argv[]はポインタとして宣言するのでarg[1]は与えられた引数のアドレスが入っている認識でした。 なぜ上のプログラムが正しく、下のプログラムが間違っているのかわかりません。 よろしくお願いします。
質問日時: 2023/02/09 18:47 質問者: ktnabe
ベストアンサー
4
1
-
Office Component Suite
Office Component Suiteを利用しようとすると、 [ilink32 エラー] Fatal: ファイル 'VARIANTS.OBJ' を開けません というリンクエラーになることがあります。 このリンクエラーをなくす方法をお教え下さい。
質問日時: 2023/02/08 10:05 質問者: haratake
ベストアンサー
1
0
-
C言語です このプログラムに自分で定義した関数を入れたいです! アドバイスください!
C言語です このプログラムに自分で定義した関数を入れたいです! アドバイスください!
質問日時: 2023/02/05 03:20 質問者: su-jay
解決済
4
0
-
c言語でユーザ関数を利用して複素数のべき乗と絶対値の数列を計算するプログラムが作りたいです。
計算がうまくいかないのですがどこを直せばよいでしょうか? #include <stdio.h> #include <math.h> void input_cmplx(double *q) { printf("q_re = "); scanf("%lf", q); q++; printf("q_im = "); scanf("%lf", q); } void conj_cmplx(double *q, double *q_conj) { *q_conj = *q; *(q_conj + 1) = - *(q + 1); } void product_cmplx(double *q1, double *q2,double *q_out) { *q_out = *q1 * *q2 - *(q1 + 1) * *(q2 + 1); *(q_out + 1) = *q1 * *(q2 + 1) + *(q1 + 1) * *q2; } double abs_cmplx(double *q) { double b[2], c[2]; double *q1, *q2; q1 = b; q2 = c; conj_cmplx(q, q1); product_cmplx(q, q1, q2); return pow(*b + *c, 0.5); } int main (void) { int N, i; double *q1, *q2, *q3; double c1[2], c2[2], c3[2]; double abs_cmplx(double *q); q1 = c1; q2 = c2; q3 = c3; input_cmplx(q1); printf("項数N = "); scanf("%d", &N); for (i = 0; i < N; i++) { product_cmplx(q1, q2, q3); printf("%+.3e %+.3ei", c3[0], c3[1]); printf(" %+.3e\n",abs_cmplx(q1)); q1 = q3; } return 0; }
質問日時: 2023/01/29 22:13 質問者: Jimotea
解決済
3
1
-
c言語でユーザ関数を利用して入力された文字列を反転させるプログラムを作りたいです。
ユーザ関数は語句を入力、長さを調べる、反転の三つを使用。 実行しても何も起こらないのですがどこを直せばよいでしょうか? #include <stdio.h> #define N 100 void input_phrase(char *p) { printf("99文字以内で入力"); scanf("%s", p); } int len(char *p) { int n = 0; while(*p !='\n') { p++; n++; } return n; } void inverce(char *p_in, char *p_out) { int i, t; t = len(p_in); p_out += t - 1; for (i = 1; i <= t; i++) { *p_out = *p_in; p_in++; p_out--; } } int main(void) { char *p_in, *p_out; char s1[N]; char s2[N]; void input_phrase(char s1); int n = 0, len(char *p); p_in = s1; p_out = s2; inverce(p_in, p_out); printf("%s", s2); return 0; }
質問日時: 2023/01/29 19:47 質問者: Jimotea
ベストアンサー
3
0
-
C言語について。
多分write関数だと思うのですが、例えば、わざわざタイピング記録7月、タイピング記録8月・・・と書かないといけないところをある関数を使うと、わざわざ書かなくても済むという話なのですが。 教えていただけると嬉しいです。
質問日時: 2023/01/28 13:28 質問者: メラゾーム
解決済
2
0
-
VisualStudioについて何点か
標題について勉強してみようと思い、 取り敢えずD/Lしてインストールしてみました。 VisualStudioコミュニティです。 ここから質問です。 ①立ち上げの時にサインインが出ましたが、 分からなかったので、「後で」を選んでしまいました。 その後分かったのですが、 この立ち上げ方だと30日で使えなくなるとのこと。 戻るにはどうすればいいのでしょうか。 戻り方を教えてください。 ②そもそもマイクロソフトアカウントとは何でしょうか。 昔からMSNのメールアドレスは持っていますが、 これで宜しいのでしょうか。 違うのであれば、取り方を教えてください。 ③最後に、 何かと初心者向けに使い方が出ていますが、 どこも結構難しいです。 『ここが本当に初心者向け』というサイトを教えてください。 以上、宜しくお願いします。
質問日時: 2023/01/28 13:15 質問者: nagahaha
ベストアンサー
1
0
-
ExcelCS
RAD Studioでコンパイルすると、excelcs.pasで、「[DCC 致命的エラー] excelcs.pas(52): E2213 パッケージ化されたユニットの形式が無効です: c:\program files (x86)\embarcadero\studio\18.0\lib\Win32\release\rtl.dcp.System.Classes - 必要なバージョン: 31.0、Windows Unicode(x86) 検出されたバージョン: 128.0、Android(x64)」というコンパイルエラーが起こりました。 このコンパイルエラーをなくす方法をお教え下さい。
質問日時: 2023/01/27 19:47 質問者: haratake
ベストアンサー
1
0
-
C言語について。
stdio.h は、標準的な入出力を行う場合に必要なバッファなどが定義されているファイルです。という文章で、などがついていますが、バッファ以外に何が定義されているのでしょうか? 教えていただけると嬉しいです。先生に聞いてみると、「stdio.hはファイルです。だけで良いのでは?」と聞くと、それでは、箱に(インクルード)に牛乳を入れてください。と言われて、流れてくるものは、パンやオレンジジュースなどが流れてきて、オレンジジュースを入れて納品したら、おかしなことになるよね?と言われて、だから、標準的な入出力を行う場合に必要なバッファというのが必要なんだよという意味がよく分かりません。後、バッファは、例えば、アンケート入力で、アンケートー1とするのがアンケートー1の領域になるよ。と言われました。どうも2つの話が繋がりません。教えていただけると嬉しいです。意味不明ですみません
質問日時: 2023/01/26 16:42 質問者: メラゾーム
解決済
7
1
-
プログラムが書けません。
以下のKadai構造体をそのまま使ってプログラムを実行した場合とstructをunionに書き換えた場合の実行結果を予測してから、実際に実行して確認しなさい。 構造体 typedef struct Kadai { char num1; short num2; int num3; } Kadai;
質問日時: 2023/01/22 22:57 質問者: m1ko
解決済
4
1
-
現在プログラムを作っているのですが、実行したときに写真のように結果が表示されるのですが、これを CH
現在プログラムを作っているのですが、実行したときに写真のように結果が表示されるのですが、これを CH1~, CH2~,CH3~ CH1~, CH2~,CH3~ のようにCH1からCH3までを一つの行に表示してから改行するようにしたいのですが、どのようにすれば良いのでしょうか。 プログラムの一部が以下になります。 オシロスコープにコマンドを送信してデータを貰って表示するというプログラムの一部です。 for(int I = 1; ; I++) { for(CH = 1; CH <= 3; CH++) { sprintf(s, ":MEMORY:VREAl? CH%d", CH); do_query_string(s); Data = atof(str_result); printf("CH%d %s", CH, str_result); } }
質問日時: 2023/01/18 16:22 質問者: ダブルジェット
ベストアンサー
2
0
-
プログラミングの授業の課題です
至急お願いしますm(__)m 以下のプログラミングに、正打率(100×出題文字数/すべての入力数)とタイプスピードを追加したらどうなるか教えてください。 ■ #include <stdio.h> #include <string.h> #include <conio.h> #include <time.h> int main(void) { FILE *fp; char str[256]; int len,i,ch; clock_t start,end; double jikan; fp = fopen("stringdata.txt","r"); if(fp == NULL){ printf("File Open Error¥n"); return -1; } printf("以下の文字列をタイプしてください.¥n"); start = clock( ); while(fgets(str,256,fp) != NULL){ len = strlen(str); str[len-1] = '¥0'; len = len - 1; printf("%s¥n",str); for(i = 0; i < len; i++){ while(1){ ch = getch( ); if(ch == str[i]){ putch(ch); break; } } } printf("¥n"); } end = clock( ); jikan = (double)(end - start)/CLOCKS_PER_SEC; printf("¥n 入力にかかった時間は%.1lf 秒です.¥n",jikan); fclose(fp); return 0; } ■
質問日時: 2023/01/17 22:15 質問者: rtsdjytibuyouh
解決済
1
0
-
至急お願いします。C言語で.imgのファイルを読み込んで1バイトづつ出力するプログラムを作りたいので
至急お願いします。C言語で.imgのファイルを読み込んで1バイトづつ出力するプログラムを作りたいのですが、fgetcで1バイトづつ配列に代入し、それを出力すると244個目の数字から全て-1が出力されてしまいます。Javaで同様のプログラムを実行すると244個目以降もちゃんとファイル内の数字が出力されるので、何が問題なのでしょうか。
質問日時: 2023/01/16 22:49 質問者: 2945108114
解決済
3
0
-
エラー: ‘inval’ の記憶サイズが不明です。 union semun inival; というエ
エラー: ‘inval’ の記憶サイズが不明です。 union semun inival; というエラーが出てコンパイルできないです。 解決策を教えて欲しいです。 #c言語 #プログラミング
質問日時: 2023/01/16 22:04 質問者: wpdptgmtg
解決済
2
0
-
Visual studio2022についての質問です。 現在プログラムを作っているのですが、添付した
Visual studio2022についての質問です。 現在プログラムを作っているのですが、添付した写真のようにslnファイルを名前を変えて日付ごとに一つのフォルダ内に保存したいのですが、一つのファイルを保存しようとすると全てのslnファイルが上書き保存されてしまいます。どのようにすればバラバラに保存できるのでしょうか
質問日時: 2023/01/16 19:37 質問者: ダブルジェット
解決済
1
2
-
c言語の問題です 課題1 (二分探索木とセット) 大きさ size の配列 array を考える。す
c言語の問題です 課題1 (二分探索木とセット) 大きさ size の配列 array を考える。すなわち、各要素値 array[i]に対し、2*i+1<size ならば array[i]<array[2*i+1]となり、2*i+2<size ならば array[i]<array[2*i+2]となるような データ格納を考える。 #include <stdio.h> #include <stdlib.h> void printArray(int *array, int size); void swap(int *array, int i, int j); void heapUp(int *array, int i); void heapDown(int *array, int i, int size); int main(void){ int data[] = {8, 98, 87, 36, 35, 54, 11, 33, 6, 79}, size = 10; int *array, i; array = (int *) malloc(sizeof(int)*size); for(i = 0; i < size; i++){ array[i] = data[i]; heapUp(array, i); } printArray(array, size); // array[0] = array[--size]; // heapDown(array, 0, size); // printArray(array, size); return 0; } void printArray(int *array, int size){ int i; for (i = 0; i < size; i++) printf("%2d%c", array[i], i == size-1 ? '\n': ' '); } void swap(int *array, int i, int j){ int tmp = array[i]; array[i] = array[j]; array[j] = tmp; } void heapUp(int *array, int i){ j=2*i+1 または j=2*i+2 ならば、i は(j-1)/2 で求まる } void heapDown(int *array, int i, int size){ } heapUp関数とheapDown関数のところがわからないので教えていただきたいです heapUpは配列 array の要素値を入れ替える関数である。 配列 data[i]に格納されている要素値を配列 array[i]へ順次格納する。 [実行例] $ ./a.exe 6 8 11 33 36 87 54 98 35 79 $ heapDownはmain 関数内のコメントアウトを削除し、array[0]の値を array[size-1]に、size を size-1 に 置き換える。heapDownは置き換えられたれた array[0]の値を入れ替える関数 ) [実行例] $ ./a.exe 6 8 11 33 36 87 54 98 35 79 8 33 11 35 36 87 54 98 79 $
質問日時: 2023/01/10 21:08 質問者: ponhei.
解決済
2
1
-
c言語の問題です
下のようなプログラムを作ったのですが、 search_set関数とsearch_element関数のをどう書いたらできるのかわからなかったので教えていただきたいです。 問題一つ以上の正の整数の要素からなる複数個の集合(以降では「初期集合」と呼ぶ)から、 ⚫ 指定した集合の全ての要素 ⚫ 指定した要素を含む全ての集合 を求めるプログラムを作成する。 global変数、static関数は使用しないこと 実行結果は写真のようになります #include <stdio.h> #include <stdlib.h> #include <string.h> #define LEN 100 struct SetNode { int number; struct SetNode *next; }; typedef struct SetNode SNode; struct TreeNode { int value; struct SetNode *slist; struct TreeNode *left, *right; }; typedef struct TreeNode TNode; TNode *make_tnode(int value, int number, TNode *l, TNode *r); SNode *make_snode(int number, SNode *s); TNode *make_bst(int value, int number, TNode *t); void search_set(int number, TNode *t); void search_element(int number, TNode *t); int main(void) { TNode *tree = NULL; int i, j; int input, stop, number; char op[LEN]; /* 初期集合の入力 */ i = 1; j = 0; stop = 0; while(stop == 0){ printf("集合%dの要素の入力: ", i); fflush(stdout); while(scanf("%d", &input) != EOF) if (input <= 0){ if (j == 0) stop = 1; else{ i++; j = 0; } break; } else{ tree = make_bst(input, i, tree); j++; } } while(1){ printf("operation: "); fflush(stdout); scanf("%s", op); if (strcmp(op, "end") == 0){ printf("終了\n"); break; } else if (strcmp(op, "set") == 0){ scanf("%d", &number); printf("集合%dの要素は", number); fflush(stdout); search_set(number, tree); printf("\n"); } else if (strcmp(op, "element") == 0){ scanf("%d", &number); printf("%dを要素としてもつのは", number); fflush(stdout); search_element(number, tree); printf("\n"); } } return 0; } /* 二分探索木のノードの作成 */ TNode *make_tnode(int value, int number, TNode *l, TNode *r) { TNode *result; result = (TNode *)malloc(sizeof(struct TreeNode)); result->value = value; result->slist = make_snode(number, NULL); result->left = l; result->right = r; return result; } /* 集合番号リストのノードの作成 */ SNode *make_snode(int number, SNode *s) { SNode *result; result = (SNode *)malloc(sizeof(struct SetNode)); result->number = number; result->next = s; return result; } /* 二分探索木の作成 */ TNode *make_bst(int value, int number, TNode *t) { SNode *s; if (t == NULL) /* ノードの新規作成 */ t = make_tnode(value, number, NULL, NULL); else if (t->value == value){ /* 同じ要素の値のノードが既に存在(集合番号リストへの追加) */ s = t->slist; while(s->next != NULL) s = s->next; s->next = make_snode(number, NULL); } else if (t->value > value) /* 右部分木を辿る */ t->left = make_bst(value, number, t->left); else/* t->value < value */ /* 左部分木を辿る */ t->right = make_bst(value, number, t->right); return t; } /* 指定された集合番号の要素の出力 */ void search_set(int number, TNode *t){ /* ここを作成 */ } /* 指定された要素を含む集合の出力 */ void search_element(int number, TNode *t){ /* ここを作成 */ }
質問日時: 2023/01/10 16:15 質問者: ponhei.
解決済
3
0
-
C言語について
stdio.hは、標準的な入出力を行う場合に必要なバッファなどが定義されているファイルです。という文章で、などがついていますが、バッファ以外に何が定義されているのでしょうか?教えていただけると嬉しいです。
質問日時: 2023/01/08 06:07 質問者: メラゾーム
解決済
4
0
-
C#の2つの実行ファイルとアプリアイコンの変更について
https://dobon.net/vb/dotnet/programing/applicationicon.html で紹介されている方法でアプリのアイコンを変更したのですが、最初(つまりデフォルトのアイコンのとき)は (1)bin\Debug\ (2)obj\Debug\ の2ヵ所にある2つの実行ファイルはともに正常に変更されるのですが、再び改めて新しいアイコンに変更しようとすると bin\Debug\ (にある実行ファイルのアイコンは変更されません。なぜでしょうか? 最初登録したアイコンはソリューションエクスプローラで削除するだではなく、ファイル自体も削除しています。 画像が見にくいので http://imepic.jp/20230107/601110 を参照してください。 また、そもそも何のために実行ファイルを2つ作成するのでしょうか。
質問日時: 2023/01/07 16:57 質問者: アンドロメダシティ
ベストアンサー
1
0
-
C言語について。
stdio.h は、標準的な入出力を行う場合に必要なバッファなどが定義されているファイルです。という文章で、などをついていますが、バッファ以外に何が定義されているのでしょうか? 教えていただけると嬉しいです。
質問日時: 2023/01/01 09:58 質問者: メラゾーム
ベストアンサー
7
0
-
ベストアンサー
2
0
-
新卒採用のゲームプログラマーにはどれくらいの技術力を求めているのでしょうか?
新卒採用のゲームプログラマーにはどれくらいの技術力を求めているのでしょうか?
質問日時: 2022/12/28 21:58 質問者: 豊本正ノ介
解決済
1
0
-
ベストアンサー
2
0
-
C 言語の Gauss Jordan 法について
昔 Delphi で作成したものを C で書き直しました。Delphi ではまったく問題なかったのですが、C の場合、方程式の係数によって、掃き出し処理をした後 0 にマイナスが付加されることがあります。書式指定しない printf でも同じです。 なぜでしょうか? ※解は正しいです。 #include <stdio.h> #include <math.h> #define M 5 /* これは掃き出し処理、後単位行列になった 0 成分にマイナスがついてしまう double A[M][M+1] = { { 5.0, -3.0, -3.0, 3.0, 2.0, -8.0 }, { 9.0, -7.0, 1.0, -6.0, -5.0, -3.0 }, { -1.0, -1.0, -8.0, 7.0, 4.0, -4.0 }, { -7.0, 2.0, -6.0, 0.0, -1.0, -1.0 }, { 8.0, 5.0, -3.0, 9.0, -7.0, 5.0 } }; */ double A[M][M+1] = { // こちらはOK { 2.0, 0.0, 4.0, 2.0, 0.0, 0.0 }, { 2.0, 2.0, 0.0, 4.0, 8.0,12.0 }, { 2.0, 4.0, 4.0, 0.0, 2.0, 0.0 }, { 4.0, 2.0, 0.0, 0.0, 4.0, 0.0 }, { 4.0, 0.0, 2.0, 2.0, 4.0, 8.0 } }; //Gauss Jordan int GaussJordan(int N) { double mMax, R_pivot, pivot, temp; int pRow = -1; for (int pv = 0; pv < N; pv++) //行ループ(一番外側のループ) { mMax = 0.000000001; for (int k = pv; k < N; k++) {//行ループ ピボット行以下の最大値探索 if (abs(A[k][pv]) > mMax){ mMax = abs(A[k][pv]); pRow = k; } } if (mMax <= 0.000000001){ //0対策 printf("解が存在しないか、または不定です!"); return (0); } if (pv != pRow) //行の入れ替え { for (int k = 0; k < N + 1; k++) { //列ループ temp = A[pv][k]; A[pv][k] = A[pRow][k]; A[pRow][k] = temp; } } //ピボット行 A[pv][j] の処理 pivot = A[pv][pv]; R_pivot = 1.0 / pivot; for (int j = 0; j < N + 1; j++) //列ループ A[pv][j] = A[pv][j] * R_pivot; //A[pv][pv] = 1 となる //ピボット行以外の処理 ⇒ ピボット列を 0 にする。 for (int k = 0; k < N; k++){ //行ループ temp = A[k][pv]; //各行のピボット列成分 for (int j = pv; j < N + 1; j++) //ピボット列以降を処理 if (k != pv) A[k][j] = A[k][j] - temp * A[pv][j]; } } return (1); } int main(void) { printf("連立一次方程式\n"); for (int i = 0; i < M; i++) { for (int j = 0; j < M+1; j++) printf("%8.3g",A[i][j]); printf("\n"); } GaussJordan(M); printf("\n解\n"); for (int i = 0; i < M; i++) { for (int j = 0; j < M+1; j++) printf("%8.3g",A[i][j]); printf("\n"); } }
質問日時: 2022/12/28 11:16 質問者: アンドロメダシティ
ベストアンサー
2
1
-
クラスのメンバ変数を基準に並べ替えをしたい
class A { public string dt; public int i; } List<A> rows = new List<A>() { { new A(){ dt = "2022-12-25 07:00:00", i = 10 } }, { new A(){ dt = "2022-12-24 00:00:00", i = 20 } }, { new A(){ dt = "2022-12-25 01:00:00", i = 15 } }, { new A(){ dt = "2022-12-24 00:00:00", i = 50 } }, { new A(){ dt = "2022-12-23 04:00:00", i = 100 } }, }; という中身がクラスAの配列があって、 ・クラスAのdtを時間とみなして時刻を基準に昇順に並べ替える ・dtが重複する行は後の行を削除する この2つの条件で並べ替えをしたいです。この例だと { new A(){ dt = "2022-12-23 04:00:00", i = 100 } }, { new A(){ dt = "2022-12-24 00:00:00", i = 20 } }, { new A(){ dt = "2022-12-25 01:00:00", i = 15 } }, { new A(){ dt = "2022-12-25 07:00:00", i = 10 } }, という結果が得たいのですが、よろしくお願いします。
質問日時: 2022/12/25 17:40 質問者: takagoo100
ベストアンサー
5
1
-
「using Windows」でエラーが出る
画像認識で文字を識別したいと思いまして。 C#のWindowsフォームアプリのプロジェクトで using Windows.Graphics.Imaging; using Windows.Media.Ocr; として使おうとすると、 「型または名前空間の名前'Windows'が見つかりませんでした」 となってしまいます・・・ 何が原因なのでしょうか? Microsoft Visual Studio Community 2022 (64 ビット) - Current Version 17.3.6 ターゲットフレームワーク .NET 6.0
質問日時: 2022/12/23 19:53 質問者: takagoo100
解決済
3
0
-
参考にいろいろとc言語、c++言語プログラミングでレジストリーを操作したいのですが、無料配布のc++
参考にいろいろとc言語、c++言語プログラミングでレジストリーを操作したいのですが、無料配布のc++Builderが良いのですが、ネットで乗ってる記事は参考になりませんでした。 ヨーロッパの方に聞いてもダメでした。 なぜ?サンプルのレジストリー操作が出来ないのでしょうか?実際にプログラムを組むとコンパイルを受け付けするときも有りますが、よく確認するとレジストリーがプログラムで変更されていません。ので、失敗する。 何か別の特殊なライブラリーを組み込まなければ、ダメですか? 以前にも訪ねたことがありましたが、直ぐに返事が来ませんでした。 それと、無料配布のプログラムでは役に立たないのか? 教えてください。
質問日時: 2022/12/22 01:49 質問者: 恥ずかしい人ばかり
解決済
3
0
-
gcc のコンパイラオプションについて
#include <math.h> のために gcc -o abc abc.c -lm とやれば OK なのですが gcc -o -lm abc abc.c とやると abc.c は存在しないというエラーが出ます。これはなぜでしょうか? コンパイラオプションの規則について、ネットで検索しているのですが適当なサイトが見つかりません。
質問日時: 2022/12/21 17:11 質問者: アンドロメダシティ
ベストアンサー
2
0
-
C言語プログラム変更
至急質問です データを降順に並び替えた後、探索データをキーボード入力そ、データの何番手にあるかを出力するプログラムを作成しなさい。探索は二分探索法を使用すること。データ探索はmain()関数とは別の関数で処理、配列データはポインタを引数として受け渡す。 という問題があるのですが #include<stdio.h> int main(void) { int score[10]; int i, j, tmp, num; //データ数の入力 printf("データ数 :"); scanf("%d", &num); for (i = 0; i < num; i++) { printf("%dつ目の点数:", i + 1); scanf("%d", &score[i]); } //基本選択法にとる並び替え for (i = 0; i < num - 1; i++) { for (j = i + 1; j < num; j++) { //データ数交換 if (score[i] < score[j]) { tmp = score[i]; score[i] = score[j]; score[j] = tmp; } } } printf("*** ソート済みデータ(降順) ***\n"); for (i = 0; i < num; i++) { printf("%dつ目の点数:%d\n", i + 1, score[i]); } return 0; } プログラムのどこを変更しどこを修正すればいいのか全く分かりません。教えて頂ける方いませんか?
質問日時: 2022/12/21 15:03 質問者: むぎちょこ0456
ベストアンサー
2
0
-
C言語で 英文字のみからなる文字列、”Radar”、”WasItACatISaw”、”a”、””(空
C言語で 英文字のみからなる文字列、”Radar”、”WasItACatISaw”、”a”、””(空列)などは回文である。コマンドライン引数でテキストファイル名を取得し、そのファイルにある英文字のみを順番にくっつけることで作った文字列が回文となっているか否かを判定するプログラム。 これ解けるかたいますか?
質問日時: 2022/12/20 15:17 質問者: h1maJIN
解決済
5
0
-
プログラミングを教えて欲しいです。 配列aは、int a[9]={7,6,12,8,3,5,10,9
プログラミングを教えて欲しいです。 配列aは、int a[9]={7,6,12,8,3,5,10,9,5}; のように初期化されている。 この時、この配列の、最大、最小、平均を実行例のように表示する プログラムを作れ。 実行例) max=12 min=3 ave=7.222222 プログラム構成例) #include <stdio.h> void main(){ int a[9]={7,6,12,8,3,5,10,9,5}; int i, max, min, sum=0; double ave; }
質問日時: 2022/12/19 23:27 質問者: Muだよ
解決済
4
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言語プログラム...
おすすめ情報