まだまだ鍛錬が必要なので雑記としてメモ
C言語のプログラミング演習。
問題1.
2つの配列a,bに、キーボードから各々10文字以内の文字列を入力し、
それらをabの順の順とbaの順に連接するプログラムを作成。
問題2.
上記の1において、a、bに入力された文字列の各々の長さを比較し、
長い文字列が先頭に、短い文字列がその後に連接するように出力するプログラムを作成。
ただし、2つの文字列の長さが同じ場合には、a、bの順で連接。
問題3.
キーボードから2つの文字列(地名、氏名など)を入力し、アルファベット順に
出力するプログラムを作成してください。endが入力されたとき、
プログラムが終了すること。たとえば、TokyoとSapporoが入力されたときは、
Sapporo
Tokyo
の順で出力。
問題1のプログラム
int main(void){ char a[10],b[10],x[10]; printf("文字列を入力してください。\n"); printf("a=");scanf("%s",&a); printf("b=");scanf("%s",&b); memcpy(x,a,sizeof(a)); strcat(a,b); strcat(b,x); printf("a,bの順=%s\n",a); printf("a,bの順=%s\n",b); return 0; }
問題2のプログラム
int main(void){ char a[10],b[10],x[10]; printf("文字列を入力してください。\n"); printf("a=");scanf("%s",&a); printf("b=");scanf("%s",&b); memcpy(x,a,sizeof(a)); if (strlen(a) < strlen(b)){ strcat(a,b); printf("配列aの長さ<配列bの長さ:a,bの順=%s\n",a); }else if(strlen(x) > strlen(b)){ strcat(b,x); printf("配列aの長さ>配列bの長さ:b,aの順=%s\n",b); }else{ strcat(a,b); printf("配列aの長さ=配列bの長さ:a,bの順=%s\n",a); } return 0; }
問題3のプログラム
int main(void){ char a[20],b[20]; int x; while(1){ printf("地名を2つ入力してください。\n"); printf("endを入力すると終了します。\n"); printf("地名1:");scanf("%s",&a); if(strcmp(a,"end")==0)break; printf("地名2:");scanf("%s",&b); if(strcmp(b,"end")==0)break; x = strcmp(a,b); if (x = 1){ printf("%s\n",b);printf("%s\n",a); } else if(x = -1){ printf("%s\n",a);printf("%s\n",b); } else { printf("%s\n",b);printf("%s\n",b); } } return 0; }
0 件のコメント:
コメントを投稿