思った通りに実行することはできましたが、もっと簡単に書くことはできないのでしょうか。
最初の数を表示して、それ以降を,%dと置いていて、for文が2個ずつに分かれてしまいコードが長く感じてしまいます。
実行例↓
Input Data No. 1 : -1
Input Data No. 2 : 1
Input Data No. 3 : 2
Input Data No. 4 : 4
Input Data No. 5 : 4
Input Data No. 6 : 7
Input Data No. 7 : 7
Input Data No. 8 : 10
Input Data No. 9 : 10
Input Data No.10 : 15
Input a search value: 7
<< Results >>
search value: 7
data smaller than search value: -1,1,2,4,4
searched data: 7,7
data larger than search value: 10,10,15
#include <stdio.h> #define SIZE 10 int main(void){ int i,i1,i2,i3,search; int array[SIZE]; for(i = 0;i<SIZE;i++){ printf("Input Data No.%2d : ",i+1); scanf("%d",&array[i]);**ボールドテキスト** } printf("\n"); printf("Input a search value: "); scanf("%d",&search); printf("\n"); printf("<< Results >>\n"); printf("search value: %d\n",search); printf("data smaller than search value: "); for(i = 0;i<SIZE;i++){ if(search > array[i]){ printf("%d",array[i]); break; } } i1 = i+1; for(i = i1;i<SIZE;i++){ if(search > array[i]){ printf(",%d",array[i]); } } printf("\n"); printf("searched data: "); for(i = 0;i<SIZE;i++){ if(search == array[i]){ printf("%d",array[i]); break; } } i2 = i+1; for(i = i2;i<SIZE;i++){ if(search == array[i]){ printf(",%d",array[i]); } } printf("\n"); printf("data larger than search value: "); for(i = 0;i<SIZE;i++){ if(search < array[i]){ printf("%d",array[i]); break; } } i3 = i+1; for(i = i3;i<SIZE;i++){ if(search < array[i]){ printf(",%d",array[i]); } } printf("\n"); return 0; }
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/11/11 17:18
2021/11/11 17:32
2021/11/11 17:57