回答数
気になる
-
C言語の課題です
ボート屋の集計 下記のボート屋からの依頼事項に従って,毎日のボートの貸出状況を集計するプログラムを作成してください. 【依頼事項】 •ボートは5隻所有している(A,B,C,D,E) •営業時間は09:00~18:00である •ボートの貸出・返却時に,以下を記録している ボート名,貸出/返却,時刻(10分単位) これらの情報から,1日分の記録として,その日の貸出時間の総計を算出したい. コマンドラインにboat.txtと入力すると、6:45 と出力される。 このプログラムを参考に次のように各ボート個別の貸出時間、総貸出時間を出力するプログラムを作成したい。 お教えいただきたくお願いします。 出力 A 2:40 C 1:55 D 2:10 6:45 1日分の記録の内容 boat.txt A O 09:10 C O 09:25 A I 09:50 C I 10:05 D O 10:15 D I 10:55 A O 11:30 C O 12:00 A I 12:45 C I 13:15 D O 13:20 A O 13:30 D I 14:05 A I 14:15 D O 14:55 D I 15:40 #include <stdio.h> #define LINESIZE 256 int main(int argc, char *argv[]){ FILE *fp; char line[LINESIZE]; char b, io; int h, m, tm; //エラー処理 if ((fp= fopen(argv[1], "r")) == NULL) { printf("Can't open the file.\n"); return 1; } tm = 0; for(; fgets(line, LINESIZE, fp)!=NULL;){ // ボートの貸出/返却時間の処理 sscanf(line, "%c %c %d:%d", &b, &io, &h, &m); switch(io){ case 'I': tm += 60*h+m; break; case 'O': tm -= 60*h+m; break; } } printf("%d:%02d\n", tm/60, tm%60); fclose(fp); return 0; }
質問日時: 2021/07/13 21:12 質問者: akirakun1955
ベストアンサー
2
0
-
C言語の課題です
以下のように2以上の整数値 n (2≦n≦10,000)を入力すると,n 以下の素数の個数と最大の素数を求め,これらを出力するプログラムを作成しました。 これを修正して正の偶数値 n(2≦n≦10,000)を入力すると,足して n になる素数の組の数を求め,出力するプログラムを作りたいと思います。 どのように修正したらよいかお教えください。 #include <stdio.h> //2から入力した整数値nまでの数値を入れる配列 //配列の中をすべて0にするよう初期化 int a[10001] = {0}; //素数かどうかを判断し、素数の個数を数える関数 int sieve(int n) { int i, j; //2からnまでの整数を並べる for (i = 2; i <= n; i++) { if (a[i] == 1) continue; for (j = 2; j <= (n / i); j++) a[i * j] = 1; } //素数の個数を調べる i = 0; for (j = 2; j <= n; j++) { if (!a[j]) a[i++] = j; } return i; } int main(int argc, char *argv[]){ int n; int size; printf(“整数値は?:”); scanf("%d", &n); //nまでの素数の個数をsizeに代入 size = sieve(n); //n 以下の素数の個数を出力 printf("%d\n",size); //素数の配列の最後の数値(n 以下の最大の素数) printf("%d\n",a[size-1]); return 0; } sieve関数に呼び込んだ後はaに素数が貯まっているのでmainでn以下の素数について足してnになる素数の組を調べるプログラムはどのように作成したらよいのでしょうか。
質問日時: 2021/07/13 21:06 質問者: akirakun1955
ベストアンサー
1
0
-
C++についての質問です
visualstudio2019を使ってC++で 「コンソールモデルで次の問題を解く 予定時刻を(日、時、分)で入れて、現在時刻との差を 求め、経過時間を計算する。 ―>「あと2日と3時間6分」など」 という問題が出たのですがわかる人いたらお願いします。
質問日時: 2021/07/13 18:06 質問者: hirotsu91v659
解決済
2
0
-
解決済
1
0
-
C++で入力した文字列から数字を取り除くもしくは数字のみをのこす
C++で入力した文字列から数字を取り除くもしくは数字のみをのこすプログラムを作成する。わかる人いたら教えてください
質問日時: 2021/07/13 14:19 質問者: hirotsu91v659
解決済
4
0
-
#include <stdio.h> int main(void) { char str[] = "
#include <stdio.h> int main(void) { char str[] = "abcde"; for (char* p = str; *p; ++p) { ++(*p); printf("%s\n", &(*p)); } } において、char* p = str;の部分は「strの文字列の文字の先頭のアドレスの番号(例えば7005)をポインタpが適当に確保した他のアドレスのメモリにアドレスの番号7005が収納される」という解釈で良いですか?
質問日時: 2021/07/12 21:26 質問者: lolza
ベストアンサー
3
0
-
この二つの問題を教えて欲しいです。 次の数列をヒープに格納した際、10はどの節点に格納されますか?ま
この二つの問題を教えて欲しいです。 次の数列をヒープに格納した際、10はどの節点に格納されますか?また計算過程を教えて欲しいです。 数列:{20,17,18,16,9,5,7,10,13,8} 次の数列をハッシュ法を用いて配列番号0〜23に格納する。27はどこに格納されるか 数列:{5,12,7,27,11,17,3,28,10,14,8,20,25,15,23,39) ハッシュ関数:h(x)=x%24(xを24で割った余りを求める)
質問日時: 2021/07/11 19:28 質問者: ヒロブラ
ベストアンサー
2
0
-
c言語 ボタン入力のプログラムについて
入力があったときにカウントを増やし2秒以内に再度入力があればカウントを増やしていくのを繰り返し、 2秒間入力がなければ終了するプログラムを作りたいのですが当方素人すぎて全くわかりません。よろしくお願いします
質問日時: 2021/07/11 19:21 質問者: はやはやはやはや
解決済
1
0
-
C言語
#include <stdio.h> #define NUM_CHARS 9 #define KINDS_NUMBERS 26 #define MAX_CHANCES 6 int main(void){ char input; /*** inputはユーザ入力***/ /***correctは正解.ここで具体的な正解も設定する***/ /***ここに何か書く***/ char yomisute; /*** 読み捨て用 ***/ int i; /*** iはループを回すため*/ int hits=0; /*** 正答回数,0に設定 ***/ /*** currentは解答状況表示用,後で%sを用いて表示する ***/ /***ここに何か書く***/ int mistakes=0; /*** ミスを数えるため ***/ int prev_hits; /*** 不正解判定のために、前の正解回数を記憶 ***/ int already[KINDS_NUMBERS]; /*** 既にタイプしたことのある数を扱う ***/ /***解答状況表示用配列の各要素を'?'に設定 ***/ /***ただし,後で%sを用いて表示できるようにする***/ /***ここに何か書く***/ /*** 配列alreadyの全要素を0に設定 ***/ for(i=0;i<KINDS_NUMBERS;i++){ already[i]=0; } while(1){ printf("Word: "); /*** 解の表示 ***/ /*** NUM_CHARS個の正解がまだ当てられていない場合には ***/ /*** currentの全要素が'?'になっている。***/ /*** そうでなければ(当てられていれば)、***/ /*** 正解と同じ文字になっている。***/ /*** %sを用いてcurrentを表示する ***/ /***ここに何か書く***/ printf("Your chances: %d\n", MAX_CHANCES-mistakes);/*** 残されたチャンス数の表示 ***/ printf("Already typed keys:");/*** 既にタイプした文字を表示 ***/ /*** ループ中で配列alreadyの要素を適切に書き換えてあるので ***/ /*** 配列alreadyの要素が1のときにその添字に対応する文字を表示すれば良い ***/ for(i=0;i<KINDS_NUMBERS;i++){ if(already[i]==1){ printf("%c, ",i+'a'); } } printf("\n"); printf("Guess a word by %d characters from a to z.: ", NUM_CHARS); /*** 設問表示 ***/ scanf("%c", &input); /*** ユーザ入力 ***/ scanf("%c", &yomisute); /*** 読み捨て ***/ printf("\n"); if(already[input-'a']==1){ printf("Character you typed had already typed.\n"); } else{ already[input-'a']=1; prev_hits=hits; for(i=0;i<NUM_CHARS;i++){ if(input==correct[i]){ current[i]=correct[i]; hits++; } } if(prev_hits==hits){ mistakes++; } if(hits==NUM_CHARS){ printf("Bingo!\n"); break; } if(mistakes==MAX_CHANCES){ printf("Sorry, the correct word is "); printf("\n"); break; } } } return 0; } 上のプログラムにおいて、「input-'a'」とはどのような意味ですか?ご教授ください。
質問日時: 2021/07/11 14:34 質問者: まぐろ-。
ベストアンサー
2
0
-
C言語(プログラミング)関連の質問です。 3×3の行列の和を求めるプログラムを教えて下さい。
C言語(プログラミング)関連の質問です。 3×3の行列の和を求めるプログラムを教えて下さい。
質問日時: 2021/07/10 15:02 質問者: AAA4040
解決済
3
0
-
C言語(プログラミング)の質問です。次のプログラムを教えて下さい。 3×3の行列の逆行列を求めるプロ
C言語(プログラミング)の質問です。次のプログラムを教えて下さい。 3×3の行列の逆行列を求めるプログラム
質問日時: 2021/07/10 14:53 質問者: AAA4040
解決済
1
0
-
#include <stdio.h> int main(void) { char str[] = "
#include <stdio.h> int main(void) { char str[] = "abcde" ; for (char* p = str; *p; ++p) { ++(*p); printf("%s\n", &(*p)); } } のプログラムが以下のような結果になる過程の処理を図など用いてどうか教えて頂けないでしょうか? bbcde ccde dde ee f
質問日時: 2021/07/08 10:42 質問者: lolza
解決済
3
0
-
#include<stdio.h> int main(int agrc char** argv) {
#include<stdio.h> int main(int agrc char** argv) { int i; for(i = 1; i <5 :i++){ printf("%d ", i); } printf("¥n"); return 0; }
質問日時: 2021/07/07 16:14 質問者: あらまな
ベストアンサー
1
1
-
ベストアンサー
1
1
-
originをを開こうとしたところ『VCRUNTME.140dllが見つからないため、コードの実行を
originをを開こうとしたところ『VCRUNTME.140dllが見つからないため、コードの実行を続行できません。』と出てきます。色々調べてVisual Studio C++2015と言うものをダウンロードしたのですがやはり同じシステムエラーが出ます。なにか対処法などありましたら教えてください。
質問日時: 2021/07/07 14:07 質問者: おかゆ0141
ベストアンサー
1
0
-
グローバル変数について
別フォルダにあるファイル内の変数を参照したい場合、どうグローバル変数宣言すれば良いでしょうか? 【例】 abcフォルダ tmp1.cファイル 別フォルダにあるファイル内の変数を参照したい場合、どうグローバル変数宣言すれば良いでしょうか? 【例】 abcフォルダ tmp1.cファイル efgフォルダ tmp2.cファイル ⇨このファイルに記載した変数をtmp1.cファイルでも参照したい
質問日時: 2021/07/04 14:27 質問者: およぐさん
解決済
6
0
-
このソートアルゴリズムの名称がわかる方いますか?
以下のプログラムで書かれたソートプログラムの名前がわかりません。 [ア]にはsizeof x / sizeof x[0];が入ると思います。 また、このアルゴリズムの平均時間計算量も教えてください。
質問日時: 2021/07/03 10:20 質問者: だいこううう
解決済
4
0
-
C#の質問
私の知識では形にならなかったのでどなたか助けてください。 基本仕様 1:テトリミノの順番を20周分作成、表示する (できるだけ同じ順番がでないようにする) 2:テトリスのテトリミノは、ランダム化された規則で出現する 3:テトリミノはアルファベットでI,O,T,J,L,S,Zの7種類ある 4:7つがランダムで流れ、7つ流れた後は、まだランダムな7つが流れてくる 例:1週目:TJIOZLS 2週目:ZOITSTL 3週目:IZLSJTO コードのヒント char[] tetrimino = { 'I', 'O', 'S', 'Z', 'J', 'L', 'T' }; Console.WriteLine(tetrimino); ↑どこで使えばいいかも分からないです。
質問日時: 2021/07/01 15:23 質問者: 鎌田氏
ベストアンサー
3
0
-
C#のクラスと継承が理解できません。
面積が不明な(ramdomで縦横半径を出す)長方形、正方形、円形をそれぞれ10個づつ生成して、それを面積の大きい順に表示したいです。 出力例: 長方形,80.0 円形,75.3 長方形,70.0 正方形,65.0 円形,55.8 正方形,45.0 ・ ・ ・ 3つの面積分のクラスが必要で、それを継承するとは教えられましたが、いまいちピンときません。 調べてみてもShapeクラスなど聞いたことがないものもでてきて訳が分かりません…。どなたか詳しい方、教えていただけると助かります。
質問日時: 2021/06/30 16:39 質問者: シオラ
ベストアンサー
4
0
-
C言語において論理演算プログラムの作成
以下のプログラムは(A|B)&(A|B|C)&(B|C)→(B)|(A&C)というような論理演算ができるのですが、アルファベット大文字の26文字限定です。大文字と小文字を別のものと区別して52文字判別するにはどこを変更すれば良いでしょうか。getExp内のelse if('A' <= *c && *c <= 'Z')をif('A' <= *c && *c <= 'z')のようにしても上手くいきませんでした #include <stdio.h> #define BUFSIZE_STR 1024 //バッファ(適当なサイズ) #define BUFSIZE_EXP 1024 //バッファ(適当なサイズ) #define BUFSIZE_ANS 1024 //バッファ(適当なサイズ) char str[BUFSIZE_STR]; //入力された数式を格納 long exp[BUFSIZE_EXP]; //ビット配列化した数式を格納 long ans[BUFSIZE_ANS]; //ビット配列化した答えを格納 int expCount = 0; //ビット配列化した数式の数 int ansCount = 0; //ビット配列化した答えの数 int maxAlpha = 0; //使用されているアルファベットの最大 void getExp(void); int checkExp(long x); int addAnswer(long x); void printAnswer(void); void main(void) { long x; getExp(); for(x = 1; x < (1<<maxAlpha); x++) if(checkExp(x)) if(addAnswer(x)) return; printAnswer(); } //標準入力から数式を入力しビット配列化する void getExp(void) { int i, j, flg; char *c; puts("数式を入力して下さい 例 (A|B)&(A|C)"); fgets(str,BUFSIZE_STR,stdin); for(c = str, flg = 0; *c != '\0'; c++){ if(!flg) exp[expCount] = 0; if(*c == '&' && flg){ expCount++; flg = 0; }else if('A' <= *c && *c <= 'Z'){ if((*c - 'A' + 1) > maxAlpha) maxAlpha = *c - 'A' + 1; exp[expCount] |= (1 << (int)(*c - 'A')); flg = 1; } } if(flg) expCount++; } //数式を評価する int checkExp(long x) { int i; for(i = 0; i < expCount; i++) if(!(exp[i] & x)) return 0; return 1; } //吸収則で不要な答えを排除しながら、答えを登録 int addAnswer(long x) { int i; for(i = 0; i < ansCount; i++){ if((ans[i] & x) == ans[i]) return 0; //吸収則により排除 if((ans[i] & x) == x){ ans[i] = x; return 0; } //吸収則により排除 } //答えの登録 ans[ansCount++] = x; if(ansCount >= BUFSIZE_ANS){ puts("バッファが足りません。"); return -1; } return 0; } //ビット配列化されている答えを、アルファベットで表示 void printAnswer(void) { int i, j, flg; for(j = 0; j < ansCount; j++){ putchar('('); for(i = 0, flg = 0; i < maxAlpha; i++){ if(ans[j] & (1 << i)){ if(flg) putchar('&'); putchar('A'+i); flg = 1; } } putchar(')'); if(j < ansCount -1) putchar('|'); } putchar('\n'); }
質問日時: 2021/06/29 17:40 質問者: fea0210
解決済
10
0
-
c言語
キーボードから空白類を含まない(長さが32未満の)文字列を1つ入力すると、同じ文字が部分的に連続するときに1文字ずつに詰めていくプログラムを作成せよ。例)aabbbfffuuと入力→abfuとなる。 解答は下記のように書かれていたのですが、prevとは何を意味していて、またなんの略なんでしょうか。わからないので教えてほしいです。 #include <stdio.h> int main(void) { char str[32], prev ; int i, j ; printf("Input a string (<32): ") ; scanf("%31s", str) ; j = 0 ; prev = '\0' ; for (i = 0 ; str[i] != '\0' ; i++) { if (str[i] == prev) { continue ; } str[j] = str[i] ; j++ ; prev = str[i] ; } str[j] = '\0' ; printf("newstr: %s\n", str) ; return 0 ; }
質問日時: 2021/06/28 18:45 質問者: aa..
解決済
4
0
-
C言語4
次のプログラムを書き換えて文字列aと文字列bが結合された文字列pを設定して画面表示するにはどのようにすればいいでしょうか? #include<stdio.h> #include<stdlib.h> int main(void){ char *a="Hello"; char *b=" World!"; char *p; /***必要な変数を宣言***/ printf("Original string:%s\n", a); printf("another string:%s\n", b); /***aの文字数計算***/ /***bの文字数計算***/ /***(a+b+1)文字分の領域を確保して先頭アドレスをpに代入***/ /***pにaをコピー***/ /***pにbを追加***/ /***pに終端文字を追加***/ printf("Concatenated string:%s\n", p); free(p);/***pを解放***/ return 0; }
質問日時: 2021/06/27 19:14 質問者: かか。。。
ベストアンサー
1
0
-
C言語3
配列bの代わりに,必要最低限の領域を確保して、確保した領域cに文字列をコピーする。 また、"Hello World!"とは文字数の異なる文字列に対しても動作するように、 下のコードを書き換えるにはどのようにすればいいのでしょうか? #include<stdio.h> int main(void){ char *a="Hello World!"; char b[20]; int i; printf("Original string:\"%s\"\n", a); for(i=0;a[i]!='\0';i++){ b[i]=a[i]; } b[i]='\0'; printf("Copied char array:\"%s\"\n", b); return 0; }
質問日時: 2021/06/27 19:13 質問者: かか。。。
ベストアンサー
2
0
-
C言語2
#include<stdio.h> #include<stdlib.h> int main(void){ int *pseudo_array; int number, i; printf("Input a positive integer:"); scanf("%d", &number); pseudo_array=malloc(number*sizeof(int)); if(pseudo_array==NULL){ printf("Out of Memory\n"); exit(1); } for(i=0;i<number;i++){ printf("Input an integer for %d-th element:", i); scanf("%d", &pseudo_array[i]); } printf("Set integers are\n"); for(i=0;i<number;i++){ printf("%d\n", pseudo_array[i]); } free(pseudo_array); return 0; } 上のプログラムを、「char型を要素に持つ配列のようなもの」を扱うようにし、実行後に入力した文字列を%sで表示できるようにするにはどのようにコードを書き換えれば良いのでしょうか?下のコードは雛形です。 #include<stdio.h> #include<stdlib.h> int main(void){ /***何か書く(適切な型)***/ *pseudo_array; char yomisute;/***読み捨て用***/ int number, i; printf("Input a positive integer:"); scanf("%d", &number); scanf("%c", &yomisute);/***改行文字読み捨て***/ /*** 何か書く(領域確保と失敗時の処理) ***/ for(i=0;i<number;i++){ printf("Input a character for %d-th element:", i); /***何か書く(キーボード入力文字を格納)***/ scanf("%c", &yomisute);/***改行文字読み捨て***/ } /***何か書く***/ printf("Set string are %s\n", pseudo_array); /***何か書く(領域解放)***/ return 0; }
質問日時: 2021/06/27 19:11 質問者: かか。。。
ベストアンサー
1
0
-
C言語
50行100 列からなるデータdat_1 がある 各列のデータの変化を確認するため図に表すこととした。 1枚の図に5列ずつ重ね書きをして、10枚の図を作成するプログラムを教えていただけませんか?
質問日時: 2021/06/27 00:16 質問者: Tatusukin
ベストアンサー
1
0
-
c言語
c言語の問題を教えてください。キーボードから文字列を入力し、その長さを表示するプログラムを作成せよ(strlen関数は使ってはいけない)というものです。自分は下記のように書いたのですがこれを実行すると入力する間もなく"文字列の長さは0"と表示されてしまします。どこをどう直せばいいのか教えていただきたいです。 #include<stdio.h> int main(void){ char string[100]; int i ; for(i=0;string[i]!='\0';i++){ scanf("%c",&string[i]); } printf("文字列の長さは%d\n",i); return 0; }
質問日時: 2021/06/26 12:14 質問者: aa..
解決済
6
0
-
c言語 配列
c言語の問題を教えて欲しいです。double 型配列 a[] にキーボードから 1 つずつ実数を入力し、その値が 0 以上 5 以下のときにはそれまでに入力した値の平均を表示し、入力値が実数でないか、0 未満である か、5 より大きければ、いままでのデータをすべて表示して終了するプログラムを作成せよ。ただし、実 数の入力数は 100 回以下とする。という問題です。自分は下記のように書いたのですがうまく実行できません。どこが違うのか教えて欲しいです。 #include<stdio.h> int main(void){ double a[]; int i,count,push; count=0; push=0; while(push<=100){ printf("number="); scanf("%lf",&a[i]); count++; push++; if(i>=0&&i<=5){ printf("Ave=%lf\n",a[i]/count); }else{ printf("%lf",a[]); break; } } return 0; }
質問日時: 2021/06/26 10:41 質問者: aa..
解決済
2
0
-
c言語 配列
c言語の問題を教えてください。 double型配列x[10]にキーボードから10個の数値を入力し、その後、すべての値を昇順(小さい順)に 表示するプログラムを作成せよ。という問題なのですが、小さい順に並び替えるときにどのようにプログラムを書けばいいのかわかりません。できればプログラムの全体をみせてほしいです。よろしくお願いいたします。
質問日時: 2021/06/26 10:01 質問者: aa..
解決済
3
0
-
解決済
2
0
-
pineスクリプト ema のコード
どなたか教えて頂けませんか? 既に計算でプロット出来ているライン(以下)に対して、emaを表示させようとしましたが、上手く行きません。 plot(kuusd,title="KuUSD",color=red,linewidth=3,style=line) 書いてみたemaのコード fastLength = input(20), slowLength=input(40) fastMA = ema(source, fastLength) slowMA = ema(source, slowLength) こんな感じではダメなのでしょうか? プログラム初心者ですみませんが、詳しい方、よろしくお願いします。
質問日時: 2021/06/23 22:23 質問者: gekikaraou
解決済
1
0
-
c言語 関数
c言語の問題を教えてほしいです。 文字列の比較を考える。2 つの文字列を引数として、それらが先頭から k 文字同じとき、k の最大値を返す 関数 int strnsame(char str1[], char str2[]) を作成し、キーボードから 2 つの (空白類を含まない 32 文字未満の) 文字列を入力させ、先頭から高々何文字まで同じかを表示するプログラムを作成せよ。 (例;”informal”と”information”を入力すると、7 が表示される。”informal”と”formal”では 0。)という問題です。よろしくお願いいたします。
質問日時: 2021/06/23 17:45 質問者: aa..
ベストアンサー
2
0
-
c言語 関数
C言語についてです。 整数の 1 次元配列とその要素数を引数として、配列の要素を昇順に並び替える関数 void sort_asc(int data[], int n) を作成し、(main関数で)キーボードから高々32個の非 負整数の入力を考える。入力の終了は32個の非負整数が入力されるか、途中で1つの負の整数が入力された時とし、負の整数はデータに含めない。入力データを関数sort_asc()に渡し、昇順に並んだデータを表示するプログラムを作成せよ、という問題を教えてほしいです。お願いいたします。
質問日時: 2021/06/23 13:24 質問者: aa..
ベストアンサー
2
0
-
1〜50まで順に数字を入力し、3の倍数と3がつく数字の場合は数字のかわりに⭐︎と出力するアルゴリズム
1〜50まで順に数字を入力し、3の倍数と3がつく数字の場合は数字のかわりに⭐︎と出力するアルゴリズムはどのような手順になるでしょうか?
質問日時: 2021/06/22 19:10 質問者: takoyaki1013
解決済
3
0
-
C/C++言語 非予約語?
C/C++言語で、予約語でないことが保証される変数名についての規約はありますか? 例えば、アンダーパー(アンダースコア)3つが冒頭に連続している変数名は、2つ連続、と同様に、予約済み、なのでしょうか? だいぶ以前に、アンダーバー3つは、セーフ、つまり、名前の衝突がないことが保証される、などと記された教科書を見かけたような記憶があるのですが、勘違いでしょうか?
質問日時: 2021/06/21 19:53 質問者: zemaric
ベストアンサー
2
0
-
課題ができなくて困ってます…。
プログラミングの課題についてです。 visualstudio2019のc++で、3×3の行列(要素の値は自由)を用いた逆行列を求めるプログラミングをしたいのですが全くできなくて困ってます…。 このプログラムリストを教えてくださる方いらっしゃいませんか…?
質問日時: 2021/06/20 15:18 質問者: ジオウ2
解決済
2
0
-
c++std::string型をTCHARに変換したい!
#define len (1024) void window(std::string text) { const char src[] = {*text.c_str()}; TCHAR dst[2048]; ZeroMemory(&dst[0],len); MultiByteToWideChar(CP_ACP, 0, &src[0], sizeof(src), ((LPWSTR)&dst[0]), len); auto window = LoadGraph("pic\\window.png"); DrawRotaGraph(310, 430, 1.5,0,window, FALSE); DrawString(400, 400,dst, GetColor(255,255,255)); } MultiByteToWideChar(CP_ACP, 0, &src[0], sizeof(src), ((LPWSTR)&dst[0]), len); でバッファオーバーフローが発生しlen()の方を1024から2056に変更したりしましたが 結果が変わらずオーバーフローしますどうすればいいでしょうか、、
質問日時: 2021/06/20 00:14 質問者: うさぎ大好き人間
ベストアンサー
2
0
-
C#の質問
入力した数字の最大値、最小値、平均値を出力するプログラムを組みましたが、平均値を出力する時、小数点が表示されません。下記のプログラムに何を追加すれば表示されますか? using System; namespace 最大最小平均を出力 { class Program { static void Main(string[] args) { int avr = 0; int max = 0; int min = 0; int[] a = new int[10]; for (int i = 0; i < a.Length; ++i) { Console.WriteLine("整数を入力してください:"); a[i] = int.Parse(Console.ReadLine()); } //平均値 for (int i = 0; i < a.Length; ++i) { avr = avr + a[i]; } //最大値 for (int i = 0; i < a.Length; ++i) { if (max < a[i]) max = a[i]; } //最小値 for (int i = 0; i < a.Length; ++i) { if (min > a[i]) min = a[i]; } Console.WriteLine("最大値:" + max); Console.WriteLine("平均値:" + (avr / 10)); Console.WriteLine("最小値:" + min); } } }
質問日時: 2021/06/16 10:10 質問者: 鎌田氏
ベストアンサー
2
0
-
Nは2以上とする。1からNまでの数字が一つずつ書かれたNマイのカードを1セットとして白色のセットAと
Nは2以上とする。1からNまでの数字が一つずつ書かれたNマイのカードを1セットとして白色のセットAと黒色のセットBがあるセットAは昇順に並べ、セットBは、すべてのi(1<=i<=N)においてセットAのi番目の数字a[i]とセットBのi番目の数字b[i]が異なるとする。 #include <stdio.h> #define N 4 int setb(int *idx,char *a,char *b){ int i; for(i=0;i<N;i++){ b[i]='0'+idx[i-1]; if(a[i]==b[i]){return 0;} } return 1; } int main(void) { int i,; int idx[N]; char a[N+2], b[N+2]; a[0] = b[0] = ' '; a[N+1]=b[N+1] = 0; for(idx[0]=1;idx[0]<=N;idx[0]++){ for(idx[1]=1;idx[1]<=N;idx[1]++){ if(idx[0]==idx[1])continue; for(idx[2]=1;idx[2]<=N;idx[2]++){ ① for(idx[3]=1;idx[3]<=N;idx[3]++){ ② if(setb(idx,a,b)) {printf("%s\n",b);} } } } } return 0; } ①と②に当てはまるコードを書け 実行した時の出力を書け わかる方お願いいたします。
質問日時: 2021/06/15 23:05 質問者: えぬわいと
解決済
2
1
-
VisualStudio2019のコードアナライザでC6386(バッファオーバーラン)エラー
以下のコードを入力すると、C6386のエラーが表示されます。VisualStudio2017では、表示されません。何が原因なのでしょうか。ご教授お願いいたします。プログラムは2つあります。 使用しているのは Windows10 Home Version 2004 Microsoft Visual Studio Enterprise 2019 Version 16.9.2 DirectXSDK(June 2010) です。 ちなみに1つ目のプログラムの12行目を size=getSize(); というようにWhile文をはずすとエラーは消えます。
質問日時: 2021/06/14 17:41 質問者: cyacya2000
ベストアンサー
2
0
-
プログラミングc言語
課題① 右のプログラムの機能を持つ関数 checkAge 関数を作ってください。 メソッド名:checkAge 引数:必要でしょうか? 何個が必要でしょうか どんなデータ型でしょうか 戻り値:ない 機能:渡された年齢の数字をみて、「大 人」、「こども」と判定する関数、 判定結果を表示する //1人目 int age1 = 30; if ( age1 >= 20) { cout<<"大人です"<< endl; } else{ cout<<"子供です" << endl; } //2人目 int age2 = 10; if (age2 >= 20) { cout <<“大人です”<< endl; } else { cout<<"子供です"<< endl; }
質問日時: 2021/06/14 12:22 質問者: rei1135
解決済
2
0
-
C言語について質問です。
以下の配列を使用した線形リストのプログラムで実行したところエラーが出ました。 エラーが出ないようにするには、どのようにcelldataの配列を宣言すればよいですか。 #include <stdio.h> int first = 0; int printall() { int now = first; while (now != -1) { printf("%d\n", celldata[now].data); now = celldata[now].next; } } int main() { celldata[0].data = 999; celldata[0].next = 1; celldata[1].data = 1; celldata[1].next = 2; celldata[2].data = 2; celldata[2].next = 1; printall(); } エラー: 'celldata' が宣言されていません (この関数内での最初の使用) 8 | printf("%d\n", celldata[now].data); | ^~~~~~~~ 備考: 未宣言の識別子は出現した各関数内で一回のみ報告されます 関数 'main' 内: エラー: 'celldata' が宣言されていません (この関数内での最初の使用) 14 | celldata[0].data = 999; | ^~~~~~~~
質問日時: 2021/06/14 05:12 質問者: nomorethan
ベストアンサー
2
0
-
異なる文字列のマッチングを、DPマッチングを用いて行うプログラム
◆ 概要 ⇒ DPマッチングのアルゴリズムを利用し、小語彙の単語音声認識実験を行う ⇒ 音声入力~音響分析までの過程はすでに終了しているものとし、 予め用意されたテキストファイルのデータを利用する ⇒100単語のテンプレートに対して、 同じ発声内容の100単語(同一話者または別話者)を未知入力音声と 見立てて順に入力し、何単語が正しく認識できるか調べる • データファイル ⇒ city_mcepdata.zip をダウンロード ⇒ 適当な場所に内容を展開 ⇒ city011, city012, city021, city022の4つのフォルダ ⇒各フォルダにそれぞれ100個のテキストファイル • データの内容 ⇒100地名単語データベース ⇒話者2名がそれぞれ2回ずつ発声(計4データセット、400単語分) ⇒100単語の発声内容がすべて同じ順序で格納 ⇒ ex. 先頭の単語(単語番号001)はAZABU(あざぶ) > ファイル名 ⇒ ex. city011_001.txt ⇒ city011 は話者01の1回目発声(city022なら話者O2の2回目発声) ⇒ _001 は単語番号 (100単語なので001から100まで) ファイル構造 ⇒テキスト形式; Windowsのメモ帳やUNIXのcatコマンドで見える ⇒先頭に3行のヘッダ情報 1行目: ファイル名から拡張子 .txt を除いたテキスト (ex.city011_001) • 2行目: 発声内容(音素の略式表示) → 3行目: フレーム数 ⇒4行目から後がデータ(音響特徴量ベクトル) 1行が1フレームに対応 → 15次のメルケプストラム特徴量(空白で区切られた15個の浮動小数点数) ⇒ ex. フレーム数が61の場合、ファイルの行数は61 + 3(ヘッダ部) = 64行 ⇒単語によりフレーム数(発声時間長に対応)が異なるので行数も異なる • 実験方法 ⇒4データセットのうち2つを利用 ⇒ テンプレート(正解)1つ、未知入力(認識対象)1つの組み合わせ ⇒同一話者(2通り) =特定話者 → ex. テンプレートが話者01の1回目、未知入力が話者01の2回目 ⇒別話者(4通り) ⇒不特定話者 + ex. テンプレートが話者01の1回目、未知入力が話者O2の1回目 ⇒それぞれの組み合わせについて100単語×100単語の総当たり認識 ⇒ 発声内容はすべて同じ;未知入力のN番目の単語をテンプレートの 100単語とマッチングさせた結果、N番目の単語に対して最小の 累積距離が得られれば正解 ⇒ 正解数(最小の累積距離を与えた単語が入力単語と一致した数) = 単語認識率 [%] データの読み込み ⇒1単語のデータ構造は double data[frame] [dimension] (2次元) ⇒この実験では dimension = 15で固定; frame は単語により異なる ⇒テンプレートと未知入力それぞれ100単語を予めすべて読み込んでおく 局所距離の計算(パズルにおける○内の数字に相当) ⇒ テンプレートA(フレーム数 I )と未知入力B(フレーム数 J)のマッチング ⇒Aのフレームiのデータを aik、Bのフレームのデータを bjk (k は次元) ⇒ aik と bjk の間の局所距離: d(i, j) = √(ai,1 - bj,1)2 + (ai,2 - bj,2)2 + … + (ai,15 - bj,15)2→すべてのフレーム相互間について計算 用いる単語数 →テンプレート、未知入力ともに100単語 100×100=10000の組み合わせ と内容はこんな感じなのですが、まずファイルを読み込むということがそもそもわかりません。C言語です。プログラミング初心者で何をやればいいのかわからず困っています。よろしくお願いいたします。
質問日時: 2021/06/13 15:38 質問者: ぴーやと
解決済
1
0
-
N88BASICのcircle 命令をDXlib で置き換える方法
N88BASIC でかかれたプログラムを参考に、DXlibを使用したC言語での描画プログラムを作成しています。 N88BASICのLINE命令は、 DXlibのDrawLine関数で代用できる ことはわかりましたが、 N88BASICのCIRCLE命令が、円の中心、半径、描画開始角度、終了角度、で使われており、 DXlibのDrawCircle関数で代用できない 模様です。 どのように対応したらよいのか、お知恵をお貸しください。
質問日時: 2021/06/12 16:15 質問者: usa3usa
ベストアンサー
2
0
-
固定小数点の三角関数
三角関数を使うには、math.h をインクルードしますが、この関数は引き数も結果も浮動小数点で実行時間が長そうです。 リアルタイム処理のための固定小数点の三角関数のようなものはあるのでしょうか。
質問日時: 2021/06/12 04:48 質問者: ahkrkr
ベストアンサー
3
0
-
プログラミングのデータの読み込み
ファイルがありそれをすべて読み込むというものです。C言語です。ファイルの中に単語のデータ構造の数字が入っておりdouble data=[frame][dimension]という形です。dimensionは15で固定でframeは単語により異なるという条件です。プログラミング初心者で何をやればいいのかわからず困っています。よろしくお願いいたします。 サンプルコードをコピーして作ってみました #include <stdio.h> int main(void) { FILE *fp; // FILE型構造体 char fname[] = "test.txt"; fp = fopen(fname, "r"); // ファイルを開く。失敗するとNULLを返す。 if(fp == NULL) { printf("%s file not open!\n", fname); return -1; } else { printf("%s file opened!\n", fname); } fclose(fp); // ファイルを閉じる // C11で導入 VisualC++2012以降ではこちらのみ使用可能 errno_t err; // errno_t型(int型) err = fopen_s(&fp, fname, "r"); // ファイルを開く。失敗するとエラーコードを返す。 if(err != 0) { printf("%s file not open!\n", fname); return err; } else { printf("%s file opened!\n", fname); } fclose(fp); // ファイルを閉じる return 0; } これのtest.txtの名前を変えればいいのかどうなのか(笑) このコードに読み込んだデータ(単語)をどう組み込めばいいのかわからないのですがわかる方お願いします
質問日時: 2021/06/11 22:57 質問者: ぴーやと
解決済
1
0
-
ARDUINO <MsTimer2.h> にわかにコンパイルエラーが発生、原因を教えてください。
UNOのMs timer2で割込みプログラムを作りしばらく、flushタイミングを変えるなどして使っていたのですが、ある時にわかにコンパイルエラーが出るようになりコンパイルできません。プログラムに 誤りがあると思い、本などに紹介された模範プログラムを実行しましたが、結果は同じです。 エラー表示は、いつも ボードArduino Genuino Unoに対するコンパイル時にエラーが発生しました と、表示され、compilation terminated とも表示していま。何か初歩的なミスをしているのか? とも思いますが、初歩の私にはまったくどうしていいのかわかりません。MsTimer2を再インストール しても治りません。どなたか、お教えください。
質問日時: 2021/06/11 10:37 質問者: 1212man
ベストアンサー
1
0
-
線形リストについてのプログラムを作ったのですが、挿入部分、削除部分がうまくいきません。 また、内容を
線形リストについてのプログラムを作ったのですが、挿入部分、削除部分がうまくいきません。 また、内容を表示させる関数を作りたいのですがどのようにすれば良いか思いつきません。 ご教授お願いしたいです。 プログラム内容としては、自己参照構造体を使い、ダミーヘッダを用いて線形リストを作りたいです。 一応ダミーヘッダを用いずに自己参照構造体ではないやり方はできたのですが、こちらに取り掛かってみるとうまく行きませんでした… #include<stdio.h> #include<stdlib.h> typedef int DATA; typedef struct node { DATA data; struct node *next; }NODE; NODE *create(void); char access(NODE *L, int i); void insert(NODE *L, int i, char x); void delete(NODE *L, int i); void initialize(NODE *L); int empty(NODE *L); /* list.c */ NODE *create(void){ NODE *pos; NODE *newNode; NODE head; pos= &head; newNode =malloc(sizeof(NODE)); newNode -> next=pos ->next; pos ->next=newNode; return(pos); } char access(NODE *L, int i){ if(L->next!=NULL){ if(i>1){ return(access(L->next,i-1)); } else{ return(L->next->data); } }else{ printf("L ends before arriving at the position.\n"); return('\0'); } } void insert(NODE *L, int i,char x){ NODE *p; if(L!=NULL){ if(i>1){ insert(L->next,i-1,x); } else{ p=create(); p->data=x; p->next=L->next; L->next=p; } } else{ printf("L ends before arriving at the position.\n"); } } void delete(NODE *L,int i){ NODE *pos;//削除したいノード NODE *prevNode;//削除したいノードの前 NODE *del; prevNode -> next=pos->next; free(pos); } void initialize(NODE *L){ while(!empty(L)){ delete(L,1); } } int empty(NODE *L){ if(L->next==NULL){ return(1); } return(0); } int main(void){ int c; int flag; flag=1; c=1; NODE *L; int a,b,d; a=0; b=0; d=0; L=create(); while(c!=9){ if(flag==1){ printf("\n1.Insert, 2.Delete, 9.Quit:"); /*コマンド入力*/ scanf("%d",&c); } switch(c){ case 1: printf("どこの場所に挿入?\n"); scanf("%d",&b); insert(L,b,a); a++; break; case 2: printf("どこの場所を削除?\n"); scanf("%d",&d); delete(L,d); break; case 9: break; default: printf("\nwrong number.\n"); } } printf("\n"); free(L); return(0); }
質問日時: 2021/06/11 01:00 質問者: mjgtj
解決済
3
0
-
C言語の問題です。 画像のような問題が解きたいのですが、 void get_data(int d[]
C言語の問題です。 画像のような問題が解きたいのですが、 void get_data(int d[])はうまく作れましたが、他の関数がうまく作れません。 どなたか得意な方、アドバイスいただけるとありがたいです。 ※よくこんな関数より〜使った方が良い、非効率すぎる。などのアンサーをいただきますが、与えられた条件を満たしてたソースコードを描きたいので、そちらの方の理解をよろしくお願いします。
質問日時: 2021/06/10 13:39 質問者: フロッピー
解決済
2
0
-
どんなプログラムを書いても指定されたファイルが見つかりません。と出てきます。どうやったら解決しますか
どんなプログラムを書いても指定されたファイルが見つかりません。と出てきます。どうやったら解決しますか?Visual Studio 2019です
質問日時: 2021/06/10 11:04 質問者: めぃりぃ
ベストアンサー
5
0
-
プログラミングに関して
専門学生です。コードについてなんですがわからなかったので質問させてください。 上から順にどんな動きをするのかを教えてください。特にに23行目のfor文のどんな動作を期待して実際にどう動くのかを知りたいです。 #include <stdio.h> void main() { int a; int b; int sum; int num; for(a = 1; a < 10000; a++) { sum = 0; num = 0; for(b = 1; b < a; b++) { if(a % b == 0) { sum += b; } } if(sum == a) { printf("%d", a); for(b = 1; b < a; b++) { if(a % b == 0) { if(num != 0) { printf("+"); num = b; printf("%d", num); } } } printf("\n"); } } } 自分自身以外の約数の総和が自分自身に等しくなる自然数を完全数と言う。例えば6の約数は1,2,3でその和は6となるので完全数である。10000以下の整数の中から、全ての完全数を探し出し表示するプログラムを作るというものです。
質問日時: 2021/06/09 22:40 質問者: 山の猫
解決済
3
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言語プログラム...
おすすめ情報