その1 ABCDEFGを表すことができる
(1)第2報を
する#include <stdio.hに> する#include <STDLIB.H> CONST INT N = 5; INT binarySearch(INT X []、N-INT、INT項目); int型のmain(){ int型[N] = {2,7,19,45,66}; INT I、インデックスキー; のprintf( "データ列A:\ N-"); のための(I = 0、I <N; I ++) printf( "%のD"、[I]); のprintf( "\ N-"); のprintf( "データ項目を検索する入力します"); scanfの( "%のD"、&キー)、 インデックス= binarySearch(、 N、KEY); IF(インデックス> = 0) のprintf( "配列の%Dは、%D \のN-添字"、キー、インデックス); 他 のprintf( "%アレイ\ NからD"キー) ; システム( "PAUSE"); の戻り0; } INT binarySearch(INT X []、INT nは、INTアイテム){ int型低、高、中、 低= 0; ハイ= N-1; 一方(低<=高){ 半ば=(低+高)/ 2。 (項目== X [中間])であれば 、戻りミッド。 そうであれば(項目<X [中間]) 高=ミッド- 1。 他の 低=ミッド+ 1; } -1を返します。 }
(2)
する#include <stdio.hに> する#include <STDLIB.H> の#define N 10 INT楽しみ(INT *、INT M) { int型の低= 0、ハイ= N-1、ミッド。 / ************* ERROR ************** / つつ(低<=高) { 半ば=(低+高)/ 2。 / ************* ERROR ************** / IF(M <*(+ミッド)) ハイ=ミッド1。 / ************* ERROR ************** / そうであれば(M> *(+ミッド)) 、低=ミッド+ 1。 他の リターン(中旬)。 } を返す(-1)。 } INT)(主 { I INT、[N] = { - 3,4,7,9,13,24,67,89,100,180}、K、M。 printf( "数组中的数据如下:\ N"); 用(; I <N; iが0 = I ++) のprintf( "%dの"、[I])。 printf( "\ nEnter M:\ n"); scanf関数( "%のD"、&M)。 / ************* ERROR ************** / K =楽しさ(M)。 もし(K> = 0) のprintf( "M =%D、指数=%D \ n"、M、K)。 他 のprintf( "が見つかりません\ n個!"); システム(「一時停止」)。 0を返します。 }
(3)
する#include <stdio.hに> する#include < 文字列・H> する#include <STDLIB.H> ボイド selectSort(チャー STR [] [ 20 ]、INT N); INT メイン(){ チャー名[] [ 20 ] = { " ジョン"、" アレックス"、" ジョセフ"、" テイラー"、" ジョージ" }。 int型私は、 printf(" 输出初始名单ます:\ n " ); 以下のために(私は= 0 ; I < 5 ; I ++ ) のprintf(" %sの\ n " 、名前[I])。 selectSort(名前、5 ); printf(" 按字典序输出名单ます:\ n " ); 以下のために(私は= 0 ; I < 5 ; I ++ ) のprintf(" %sの\ n " 、名前[I])。 システム(「一時停止」)。 リターン 0 ; } ボイド selectSort(CHAR STR [] [ 20 ]、INTN) { int型I、J、K。 チャー TEMP [ 20 ]。 以下のために(私は= 0 ; iが<N- 1 ; I ++ ) { K = I。 用(J = I + 1 ; J <N J ++ ) 場合(のstrcmp(STR [J]、STR [K])< 0 ) 、K = J。 もし(K =!I) { strcpyの(TEMP、STR [I])。 strcpyの(STR [i]は、STR [K])。 strcpyの(STR [k]は、TEMP)。 } } }
(4)
#include <string.hの> する#include <stdio.hに> する#include <STDLIB.H> ボイド楽しい(CHAR *){ / ***** ERROR ******** / INT I = 0。 char * p = A; / **** ERROR *** / ながら(* P && * P == '*'){ [I] = * P。 I ++; P ++; } 一方(* P){ / ****** ERROR ******* / IF(* P = '*'!){ [I] = * P。 I ++; } のp ++。 } / ****** ERROR ******* / [I] = 0; } int型のmain(){ チャーS [81]。 printf( "文字列を入力します:\ n"); / *** ERROR ****** / 楽しさ(秒)。 printf( "削除された後の文字列:\ N"); プット(S); システム(「一時停止」)。 0を返します。 }
(5)
#include <stdio.h> #include <stdlib.h> #include <string.h> void fun(char *a) { /**ERROR******/ int i=0; char *t = a, *f = a; char *q = a; while(*t) t++; t--; while(*t == '*') t--; while(*f == '*') f++; /***ERROR***/ while (q<f) { a[i] = *q; q++; i++; } while (q<t) { /***ERROR**/ if(*q != '*') { a[i] = *q; i++; } q++; } while (*q) { a[i] = *q; i++; q++; } /**ERROR**/ a[i]=0; } int main () { char s[81]; printf("Entre a string:\n"); gets(s); /**ERROR**/ fun(s); printf("The sting after deleted:\n"); puts(s); system("pause"); return 0; }
实验结论:还需要多练习,锻练自己的逻辑思维,对一些函数引用的格式还要记忆,指针与数组之间的关系还要多看,否则头昏。