まだまだ鍛錬が必要なので雑記としてメモ
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 件のコメント:
コメントを投稿