C・C++・C#

全26349件中121~140件表示
  • C言語について。

    ここでいうC言語のモジュールとは、関数の事でしょうか?教えていただけると嬉しいです。以下の文章です。 C言語のプログラムは、通常いくつかの関数によって構成されています。この関数とは、1つの処理単位を表すものでモジュールともいいます。

  • C言語について。

    #include <stdio.h>で、#include<ファイル名>は、システムにすでに用意されたファイルを用いる場合にと書かれているのですが、ここでいうシステムとは、どういう事でしょうか?教えていただけると嬉しいです。

  • c言語

    スーパーのレジがあるとします。 そこに客が並びます。その客の会計が終わったら列から抜けて次に並んでいる客の処理をします。 レジは途中で開き、閉まることがあります。 input --------- 2 Akira 3 9 Yoko 4 12 Takumi 6 20 Kouta 9 18 # 11 1 Miku 18 22 @ 22 1 Daiki 23 10 ---------------- これはファイルinput.txtの内容で、読み込みます。 最初にレジの台数を入力します。 名前の後空白で区切ってレジに到着した時間その後にまた空白で区切って処理の終了時間 # 11 1 はレジが閉まる時間でこの場合は0番目、1番目のレジがある中で11の時間に1番目のレジが閉まるということです。 @ 22 1 は22の時間に1番目のレジが開くということです。 2人以上がレジに並んでいる時にレジが閉まったら処理中の客以外は開いているレジに並びます。 客はレジに並んでいる人数が少ない列に優先的に並びます。もし同じ人数が並んでいたら数字が若いレジが優先です(0番目から) --------------------- output Akira 12 0 Yoko 16 1 Takumi 32 0 Daiki 33 1 Kouta 50 0 Miku 72 0 ------------------ outputもファイルで行います。 処理の終了した順に名前と処理時間、処理したレジの番号を出力します。 並んでいる時にレジが閉まったら他の列に並びなすコードがわからないです。 あと、他におかしいところがあったら指摘お願いします。 コードが長いのでこちらから見ていただければ幸いです ```c https://hackmd.io/@I85z6XPYS4e-Pjfg9AoVKQ/SkLL8Ip4j ```

  • c language

    while ((del = fscanf(f,"%s %d %d",name,&arr,&leave)) != EOF) { //printf("%s %d %d\n",name,arr,leave); if(name[i] == '#'){ printf("%s",name); }else if(name[i] == '@'){ printf("%s",name); } i++; } ファイル読み込みで dAA 1 2 B 2 3 dfee 56 8 gtr 21 0 @ 23 5 このように'文字列' '数字' '数字' のように並んでいるのが縦に何行かあります。 それを 文字列の部分が@だったら〜など判定するにはどうすればいいですか? 一応ファイル読み込んで全てプリントしてその後にifで判断しようと思ったのですがうまく行きませんでした。

  • c言語

    スーパーのレジがあるとします。 そこに客が並びます。その客の会計が終わったら列から抜けて次に並んでいる客の処理をします。 レジは途中で開き、閉まることがあります。 input --------- 2 Akira 3 9 Yoko 4 12 Takumi 6 20 Kouta 9 18 # 11 1 Miku 18 22 @ 22 1 Daiki 23 10 ---------------- これはファイルinput.txtの内容で、読み込みます。 最初にレジの台数を入力します。 名前の後空白で区切ってレジに到着した時間その後にまた空白で区切って処理の終了時間 # 11 1 はレジが閉まる時間でこの場合は0番目、1番目のレジがある中で11の時間に1番目のレジが閉まるということです。 @ 22 1 は22の時間に1番目のレジが開くということです。 2人以上がレジに並んでいる時にレジが閉まったら処理中の客以外は開いているレジに並びます。 客はレジに並んでいる人数が少ない列に優先的に並びます。もし同じ人数が並んでいたら数字が若いレジが優先です(0番目から) --------------------- output Akira 12 0 Yoko 16 1 Takumi 32 0 Daiki 33 1 Kouta 50 0 Miku 72 0 ------------------ outputもファイルで行います。 処理の終了した順に名前と処理時間、処理したレジの番号を出力します。 このコードを教えてもらえないでしょうか。 #define MAX_QUEUE_SIZE 10 int global_clock; typedef struct Customer { char id[20]; // 客 id int arr_time; // 客が銀行に着く時間 int ser_time; // 客の処理にかかる時間 }Customer; typedef struct TellerQueue { int status; // status, 0: close, 1:お客様が一人しか残っていない状態、つまりCLOSE, 2:open int front; // front pointer,最初の要素elementへのインデックスindex int rear; // rear pointer,最後の要素elementの次のインデックスindexを指す int count; // queue 待ち行列の人数 int current_served_time; // 現在、お客様との取引に費やしている時間 Customer queue[MAX_QUEUE_SIZE]; // 配列形式の円形待ち行列のシミュレーション。 }TellerQueue; これらの構造体が最初に与えられています。

  • c言語 アロー演算子

    連結リストにおいて *ptr = (*ptr)->link; とはどういう意味ですか? listPointer *ptr; ではなく listPointer ptr;の理由は? ------------------------------------------------------------ typedef struct listNode *listPointer; typedef struct listNode { int data; listPointer link; }; listPointer ptr =NULL; ------------------------------------------------------------

  • c言語 文字列を","で区切って配列に入れたい。

    =9,4,=5,=20,=2,=1,=15,8,52,=100,... このように配列があったとします。(最大100個の要素,数字は最大100)これを","で区切って配列に入れたいです。そしてその数字を使えるようにしたいです。やり方を教えてください。

  • VIsual Studio と Blend

    Visual Studio で軽くレイアウトして、コードを書いて、 Blend でデザインを整える。 Blend で行った変更をリアルタイムで Visual Studio に反映することはできますか? 一人で作業してます。 あとは、 Office みたいに One Drive に自動保存・共同編集(Live Sher以外)はできますか?

  • power shellについて

    さっきpowershellで適当に「command」と打って実行したのですがよく意味がわかりません。このコマンドはどういうことをしているのですか?

    • ベストアンサー
    • noname#260844
    • C・C++・C#
    • 回答数2
  • c言語でのダイクストラ法の実装

    大学の課題で、c言語におけるダイクストラ法について以下のようなものが出たのですが出力のためにどのようなコードを書けばいいかわかりません。どなたかコードや実装方法を教えていただけないでしょうか。 (入力例) 7 -1 7 3 6 -1 -1 4 7 -1 5 -1 6 -1 -1 3 5 -1 4 1 3 5 6 -1 4 -1 -1 -1 7 -1 6 1 -1 -1 2 -1 -1 -1 3 -1 2 -1 9 4 -1 5 7 -1 9 -1 1 1行目は頂点の数、2行目以降の各行は隣接行列の各要素を空白区切りで表し、最後の行の数はスタートの頂点の番号 [出力] 1. スタートとして選択した頂点から各頂点への最短経路とコストを以下の形式で 出力する.ここで s はスタートの頂点, g はゴールの頂点, c は合計のコス トを表す.また s ... g は最短経路の各頂点を空白区切りとして表す. s-->g : c ( s ... g ) 以下は上記の入力例の場合の出力例 Input>1 <-- スタートとして選択した頂点番号 1-->0 : 7 ( 1 0 ) 1-->1 : 0 ( 1 ) 1-->2 : 5 ( 1 2 ) 1-->3 : 9 ( 1 2 3 ) 1-->4 : 6 ( 1 4 ) 1-->5 : 8 ( 1 2 5 ) 1-->6 : 10 ( 1 2 6 ) ↓自分の書いたコード #include <stdio.h>#include <limits.h>#define FALSE 0 #define TRUE (!FALSE) #define INFINITY INT_MAX #define MAXSIZE 100 int dijkstr(int number_of_vertex, int weight[][MAXSIZE], int start_vertex){ int is_in_mst[MAXSIZE], d[MAXSIZE]; int i, j, number_of_edges, min_d, v; printf("Input>%d\n", start_vertex); for (i = 0; i <number_of_vertex; i++) is_in_mst[i] = FALSE; for (i = 0; i <number_of_vertex; i++) d[i] = INFINITY; d[start_vertex] = 0; for(number_of_edges = 0; number_of_edges<(number_of_vertex-1); number_of_edges++) { min_d = INFINITY; v = INFINITY; for (i = 0; i <number_of_vertex; i++) { if(is_in_mst[i] == FALSE &&d[i] <min_d) { min_d = d[i]; v = i;}} if(v != INFINITY) is_in_mst[v] = TRUE; for (i = 0; i <number_of_vertex; i++) { if(is_in_mst[i] == FALSE &&weight[i][v] != INFINITY &&(weight[i][v] + d[v]) <d[i]) d[i] = weight[i][v] + d[v];}}} int main(void){ int weight[MAXSIZE][MAXSIZE]; int i, j, data, n, start; printf("Input data size>"); scanf("%d", &n); printf("%d\n", n); for (i = 0; i <n; i++) { for(j = 0; j <n; j++) { printf("Input data>"); scanf("%d", &data); printf("%d\n", data); weight[j][i] = data; if(weight[j][i] == -1) weight[j][i] = INFINITY;}} printf("\n"); printf("Input start vertex>"); scanf("%d", &start); return 0;}

  • C++ 構造体型のvector配列でエラーがでます

    構造体のvector配列を関数に渡しています。 以下のソースコードで、3点エラーがでます どのように変更すればよいですか? #include<stdio.h> #include<stdlib.h> #include<iostream> #include <vector> using namespace std; std::vector<int> v; typedef struct fukusosu{ int a; int b; }FUKUSOSU; int sort(vector<FUKUSOSU> v[], int N){ FUKUSOSU tmp; int j; for(int i = 0 ; i < N - 1 ; i++){ j = i ; for(int k = i + 1 ; k < N ; k++){ if(v[j].a > v[k].a){j = k;}//ここのaに対して、エラーがでます } tmp = v[j];//ここのイコールに対して、エラーがでます v[j] = v[i]; v[i] = tmp;//ここのイコールに対してエラーがでます } } int main(void){ int N; // 要素数 cin >> N; vector<FUKUSOSU> v(N); for(int i = 0; i < N; ++i){ cin >> v[i].a; cin >> v[i].b; } }

  • c言語で四則演算の問題をランダムでだしたいです

    c言語で四則演算の問題をランダムでだしたいです。 学校の課題でだされていて誰か助けてください

  • githubにて拡張子slnがない場合のビルド

    c#初心者です。 githubにあるコードをビルドして動くと感動しています。 しかし拡張子slnが掲載されていないコードもあります。 これはどうすれがビルドできるのでしょうか? コードの内容を読んで参考にし、自分で作ったプロジェクトに組み込むしかないのでしょうか?

  • c言語 for文の挙動について

    c言語はまだ習い始めで、拙い質問ですが回答していただければ幸いです。 for(i=0;i<DATA;i++){ InputI(i,a,s); }   void InputI(int i,int a,char s[ID][DATA+1]){ printf("%sを入力してください:",Order[i]); scanf("%s",s[a-1][i]); printf("%sを%sとして登録しました\n",Order[i],s[a-1][i]); } char Order[DATA][40]={"名前(ローマ字)","電話番号","メールアドレス","郵便番号","都道府県","住所","一言(100字以内)"}; 下のInputI関数を使い、for文でさらにその下のOrder配列の内容を配列に記録したいのですが、名前を入力した瞬間に名前からひと言までがすべてNULLで記録され、想定したように動きません。 これの解決方法を教えていただきたいです。回答よろしくお願いします。

  • C言語 配列 ファイルの読み取りについて

    c言語習いたてで恐縮ですが、よければ私の拙い質問にお付き合いください。 ID=100,DATA=7,size=100 配列str[ID][DATA][size]にファイルを読み込んでデータの管理を行うというプログラムを作成しているのですが、写真1のようなデータを for(i=0; i<ID; i++){ for(j=0; j<=DATA; j++){ fscanf(fp,"%s",str[i][j]); } } というプログラムを用いて読み取りたいのですが、 str[1][7]とstr[2][0]、str[2][7]とstr[3][0]のように隣接した配列 str[n][7]とstr[n+1][0] がなぜか同じ文字を格納し、調べたところ本来str[n][7]で表示されるはずの文字がどこにも格納されていないという結果になりました。 この問題の解決法、または感じた違和感など、教えていただければ幸いです。

  • arduinoについて

    7セグledとボタンを使って、エレベーターの階数表示をさせる回路とプログラムを作っていてプログラムはある程度かけているのですがうまくいきません。何が足りないのでしょうか? プログラムは以下の通りです。 {#define LED_A 6 #define LED_B 7 #define LED_C 8 #define LED_D 9 #define LED_E 10 #define LED_F 11 #define LED_G 12 #define LED_DP 13 #include <Servo.h> Servo servo; int button1 = 5; int button2 = 4; unsigned long buttonGap ; void setup() { pinMode(LED_A, OUTPUT); pinMode(LED_B, OUTPUT); pinMode(LED_C, OUTPUT); pinMode(LED_D, OUTPUT); pinMode(LED_E, OUTPUT); pinMode(LED_F, OUTPUT); pinMode(LED_G, OUTPUT); pinMode(LED_DP, OUTPUT); pinMode(5, OUTPUT); pinMode(4, OUTPUT); servo.attach(11); } void loop() { digitalWrite(LED_A, HIGH); digitalWrite(LED_B, LOW); digitalWrite(LED_C, LOW); digitalWrite(LED_D, HIGH); digitalWrite(LED_E, HIGH); digitalWrite(LED_F, HIGH); digitalWrite(LED_G, HIGH); digitalWrite(LED_DP, HIGH); digitalWrite(LED_A, LOW); digitalWrite(LED_B, LOW); digitalWrite(LED_C, HIGH); digitalWrite(LED_D, LOW); digitalWrite(LED_E, LOW); digitalWrite(LED_F, HIGH); digitalWrite(LED_G, LOW); digitalWrite(LED_DP, HIGH); servo.write(180); delay(2000); servo.write(0); delay(2000); } void switchLights() { digitalWrite(LED_A, HIGH); digitalWrite(LED_B, LOW); digitalWrite(LED_C, LOW); digitalWrite(LED_D, HIGH); digitalWrite(LED_E, HIGH); digitalWrite(LED_F, HIGH); digitalWrite(LED_G, HIGH); digitalWrite(LED_DP, HIGH); delay(4000); digitalWrite(LED_A, LOW); digitalWrite(LED_B, LOW); digitalWrite(LED_C, HIGH); digitalWrite(LED_D, LOW); digitalWrite(LED_E, LOW); digitalWrite(LED_F, HIGH); digitalWrite(LED_G, LOW); digitalWrite(LED_DP, HIGH); delay(5000); }

  • C言語

    以下のようなhello.cがあります。 include<stdio.h> int main(void) { printf("Hello World! \n"); return 0; } gcc -E hello.c と打つとプリプロセッサが表示されます。 課題はこの中からprintfに関するものを見つけ、読み取れることを説明せよとのことです。 問題の意図と解き方がわかりません。 よろしくお願いします。 環境はwsl ubuntu です。

  • VS 2022 アプリを閉じても使用中と言われる

    Visual Studio 2022を使っています。。 アプリを閉じて、エクスプローラーでフォルダ名を変更しようとすると、 【このファイルは別のアプリで使用されています。】 といわれ、しばらくの間は(数分)、フォルダ名を変更できません。 この状態を回避してすぐにフォルダ名を変更できるようにはできないでしょうか?

  • メルセンヌツイスターによる乱数の使い方

    メルセンヌツイスターによる乱数を生成したいのですが、下記コードにすると、mt_rand関数を呼ぶたびにシードが初期化され他乱数が生成されます。 やりたいことは、main関数で一度シード101で初期化した後は、mt_rand関数内では、初期化することなく継続した乱数を生成したいのです。 そのためa_mt_rand関数のようにすると、mtが定義されていないとなるエラーとなります。 namespaceの問題と思うのですが、色々試してみましたが、できませんでした。 どのようにすればできるでしょうか。 vc++11、windows11 使用 参考サイト C++ 乱数ライブラリ std::random の使い方 リンクはうまく貼れませんでした。 #pragma hdrstop #include <iostream> #include <stdio.h> #include <random> using namespace std; void mt_rand(void); int main(int argc, char *argv[]) { int ptr; std::mt19937 mt(101); // メルセンヌツイスターの32ビット版、引数は初期シード std::uniform_int_distribution <> rand100(0, 100); // [0, 99] 範囲の一様乱数 ptr = rand100(mt); printf("ptr=%d\n",ptr); mt_rand(); } void mt_rand(void) { int ptr=0; std::mt19937 mt(101); // メルセンヌツイスターの32ビット版、引数は初期シード std::uniform_int_distribution <> rand100(0, 100); // [0, 99] 範囲の一様乱数 ptr = rand100(mt); printf("%d\n",ptr); } void a_mt_rand(void) { int ptr=0; ptr = rand100(mt); printf("%d\n",ptr); }

  • 【c言語】テキストファイルからバイト数を算出したい

    やりたいこと 自然言語処理について勉強しています。 Wikipediaのdumpデータから本文を抜き出して処理をしようと思ってます。 xmlの処理について試しているのですが、 欲しい出力は,,<title>~~</title>のシークポイント(pb[0])と〜〜部分のバイト数(pb[1])の記入されたファイルです. シークポイントとバイト数さえわかれば後述の2つ目のプログラムを使って 後述の実行結果のpb[0]部分が0と表示されていて困ってます. プログラミング構成 jawiki-20211220-pages-articles-multistream2.xml(読み込み先のテキストファイル) Wiki_getter1_Byte.c(バイト数を算出するプログラム,<Page>〜〜</page>間は取得できている.) Wikigetter2_text.c(getter1の出力ファイル(get_text_Byte.txt系列)からシークポイントまでfseekしてバイト数分freadしてテキストファイルに記入上と同じくページ全体とテキスト部分が取得できている.) 以下にソースコードを貼り付けます。 ======== やりたいこと 自然言語処理について勉強しています。 Wikipediaのdumpデータから本文を抜き出して処理をしようと思ってます。 xmlの処理について試しているのですが、 欲しい出力は,,<title>~~</title>のシークポイント(pb[0])と〜〜部分のバイト数(pb[1])の記入されたファイルです. シークポイントとバイト数さえわかれば後述の2つ目のプログラムを使って 後述の実行結果のpb[0]部分が0と表示されていて困ってます. プログラミング構成 jawiki-20211220-pages-articles-multistream2.xml(読み込み先のテキストファイル) Wiki_getter1_Byte.c(バイト数を算出するプログラム,,欲しいのは<text>~~</text>,<title>~~</title>,<id>~~</id>間のバイト.) Wikigetter2_text.c(getter1の出力ファイル(get_text_Byte.txt系列)からシークポイントまでfseekしてバイト数分freadしてテキストファイルに記入上と同じくページ全体とテキスト部分が取得できるプログラム.) 以下にソースコードを貼り付けます。 #include <stdio.h> #include <stdlib.h> #include <string.h> #define SIZE 256 * 1024 * 1024 int main() { size_t p, pb[2]; char *line = malloc(SIZE); FILE *fp = fopen("jawiki-20211220-pages-articles-multistream2.xml", "r"); FILE *fw = fopen("get_text_byte.txt", "w"); if ((NULL == fp) || (NULL == fw)) abort(); while (p = ftell(fp), fgets(line, SIZE, fp)) { if (strstr(line, "<page>")) { pb[0] = p; if (strstr(line, "</page>")) { pb[1] = pーpb[0]; } printf("%zu\t%zu\n", pb[0], pb[1]); } printf("process ok"); free(line); fclose(fw); fclose(fp); } ======== 読み取ったシークポイントとバイトからxmlを抽出するプログラムは既にできているのでこの出力が正しくできるようになりたいです. *よく言われますが外部ライブラリは利用しない方向でお願いします. 追記に出力の一例を記載しておきます. 補足 出力一例です.pb[1]が取得できてないようです. 1536318555 0 1536318555 0 1536318555 0 1536318555 0 1536318555 0 1536318555 0 1536318555 0 1536318555 0 1536318555 0 1536318555 0 1536318555 0 1536318555 0 1536318555 0 1536318555 0 1536318555 0 1536318555 0 process ok%