• ベストアンサー

c言語がわかりません

(1)5人のテストの点数をキーボードから配列に入力し、70点以上の人をカウントし、結果を表示するプログラムを作る。 (2)2つの配列(aとb)の中身を交換するプログラムを作成する。2つの配列は交換前と交換後を表示する。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

#define countof( a ) ( sizeof( a ) / sizeof( a[ 0 ] ) ) //(1)のプログラム int main() { int scores[ 5 ] = { 0 }; int count = 0; int total = 0; printf( "点数を入力してください\n" ); while( 1 ) { scanf( "%d", &scores[ count ] ); if( 70 <= scores[ count ] ) { ++total; } if( ++count >= countof( scores ) ) { break; } } printf( "70点以上は%d人です\n", total ); getchar(); return 0; } //(2)のプログラム void output( char* str, int* p, int count ) { printf( str ); for( int ii = 0; ii < count; ii++ ) { printf( "[%d]=%d ", ii, p[ ii ] ); } } int main() { int a[ 10 ]; int b[ 10 ]; int ii; srand( ( unsigned )time( NULL ) ); for( ii = 0; ii < countof( a ); ii++ ) a[ ii ] = rand(); for( ii = 0; ii < countof( b ); ii++ ) b[ ii ] = rand(); output( "\n交換前のa:", a, countof( a ) ); output( "\n交換前のb:", b, countof( b ) ); for( ii = 0; ii < countof( a ) && ii < countof( b ); ii++ ) { int temp = a[ ii ]; a[ ii ] = b[ ii ]; b[ ii ] = temp; } output( "\n交換後のa:", a, countof( a ) ); output( "\n交換後のb:", b, countof( b ) ); return 0; }

関連するQ&A

専門家に質問してみよう