Mqtt 対象のコンピューターによって拒否されたため、接続できませんでした。

Mqtt 対象のコンピューターによって拒否されたため、接続できませんでした。

Show

C言語でマージソートの実行時間を計測するプログラムを組んでいるのですが、実行時間が0[sec]と表示されてしまいます。 また、Nを10000とすると実行時間が0[sec]となったり0.015625[sec]となったりします。解決方法を教えてください。 Windows10、Ubuntu22.04.1LTSを使っています。 #include<stdio.h> #include<stdlib.h> #include<stdint.h> #include<time.h> #define N 1000 #define MAX_VAL 100 void merge(int *array,const int first,const int middle,const int last){ int32_t left=first,right=middle+1,i_work=0; int32_t *work=calloc(last-first+1,sizeof(int32_t)); while(left<=middle && right<=last){ work[i_work++]=(array[left]<array[right])?array[left++]:array[right++]; } while(left<=middle){ work[i_work++]=array[left++]; } while(right<=last){ work[i_work++]=array[right++]; } for(int32_t i=0;i<last-first+1;i++){ array[i+first]=work[i]; } free(work); } void merge_sort(int *array,const int first,const int last){ int32_t middle; if(first<last){ middle=(first+last)/2; merge_sort(array,first,middle); merge_sort(array,middle+1,last); merge(array,first,middle,last); } } int main(int argc,char *argv[]){ int data[N]; srand((unsigned)time(NULL)); for(int32_t i=0;i<N;i++){ data[i]=rand()%MAX_VAL+1; printf("%d ",data[i]); } putchar('&yen;n'); clock_t start_time,end_time; start_time=clock(); merge_sort(data,0,N-1); end_time=clock(); printf("&yen;ntime = %lf {sec]&yen;n",(double)(end_time-start_time)/CLOCKS_PER_SEC); for(int32_t i=0;i<N;i++){ printf("%d ",data[i]); } putchar('&yen;n'); return 0; }

C言語関連

Mqtt 対象のコンピューターによって拒否されたため、接続できませんでした。

C言語とても初心者です。。。課題が分からなくて困っています。どなたか教えていただけないでしょうか。【1】は似た問題があったので解けましたが、【2】がわかりません。どうかよろしくお願いいたします。 ========== 【1】配列に5個の整数データ 894, 652, 132, 43, 756 を代入したあと、キーボードから入力したデータが 配列内にある場合には、その要素の番号を出力する プログラムを作りなさい。 【2】上述のプログラムをデータがなかった場合には「該当なし」と出力 するプログラムに変更しなさい。 ========== //【1】 #include<stdio.h> int main(void) { int i, key; int arry[5] = {894,652,132,43,756}; scanf("%d",&key); for(i=0; i<5; i++){ if(arry[i]==key) printf("key = arry[%d]&yen;n", i); } return 0; } ==========

C言語関連

Mqtt 対象のコンピューターによって拒否されたため、接続できませんでした。

二分探索を再帰で実装する課題なのですが、作成していて続きがわからなくなってしまったため、教えていただけると嬉しいです。よろしくお願いします。 #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #define N 10 int s[N] = { 1,3,4,8,13,14,18,20,21,25 }; void point_data(void); int binary_search(int key, int low, int high); int main(void) { int x; int i; printf("探索キーを入力してください:"); scanf("%d", &x); point_data(); i = binary_search(x, 0, N - 1); if (i == -1) { printf("The element %d is not ins&yen;n", x); } else { printf("%d is found in s[%d]&yen;n", x, i); } return 0; } void point_data(void) { int i; for (i = 0; i < N; i++) { printf("s[%d] = %d&yen;n", i, s[i]); } } int binary_search(int key, int low, int high) {

C言語関連