- ベストアンサー
数列の一部表示
数列a[n]をC言語で表示するプログラムで a[5] a[6] a[7] a[8] a[9] a[10] a[15] a[16] a[17] a[18] a[19] a[20] a[25] a[26] a[27] a[28] a[29] a[30] : という感じで表示したいんですけどいろいろやってみたのですけど上手くいきません。 ご教授願えますでしょうか。 a[n]はなんでもいいです。たとえばa[n+1] = a[n] + 3。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
>という感じで表示したい・・・ 見た目のまんまでとらえて・・・ void Display( int a[] ) { int i; for( i = 1; i < 2000; i++ ){ // 2000 仮定 if( 5 == ( i % 10 ) ) printf( "%5d,", a[i] ); if( 6 == ( i % 10 ) ) printf( "%5d,", a[i] ); if( 7 == ( i % 10 ) ) printf( "%5d,", a[i] ); if( 8 == ( i % 10 ) ) printf( "%5d,", a[i] ); if( 9 == ( i % 10 ) ) printf( "%5d,", a[i] ); if( 0 == ( i % 10 ) ) printf( "%5d\n", a[i] ); } printf( "\n" ); } で如何でしょうか?。 でも、あまりに単純すぎて、「いろいろやってみたのですけど・・・」が気がかりです、ご本意に沿えていないのではと・・・。
その他の回答 (2)
- mac_res
- ベストアンサー率36% (568/1571)
#include <stdio.h> /* 数列を部分表示する。 * int a[] 数列へのポインタ * int start 開始する添え字 * int end 終了する添え字 * int line 1行の要素数 */ void dip(int a[], int start,int end, int line) { int i,n; for (i = start, n = 0; i <= end; i++) { printf("%10d ", a[i]); n++; if ((n % line) == 0) { printf("\n"); } } printf("\n"); } int main(int argc, char *argv[]) { int a[100]; int start, end, line, i; if (argc < 3) { fprintf(stderr, "\ndip start, end, line"); return(1); } for (i = 0; i < 100; i++) { a[i] = i; } start = atoi(argv[1]); end = atoi(argv[2]); line = atoi(argv[3]); dip(a, start, end, line); return 0; }
お礼
アリガトウございます。 参考にさせていただきます。
- 麻野 なぎ(@AsanoNagi)
- ベストアンサー率45% (763/1670)
いろいろやってみた……というのが、具体的に書かれていると、具体的な回答があったり、どこでつまずいていたかわかったりして良いのではないかと思います。
お礼
まだプログラミング始めたばかりでして・・・ 参考にさせていただきます。