性格いい人が優勝

#include<stdio.h>
#include<stdlib.h>
int main(void){
int *pseudo_array;
int number, i;
printf("Input a positive integer:");
scanf("%d", &number);
pseudo_array=malloc(number*sizeof(int));
if(pseudo_array==NULL){
printf("Out of Memory\n");
exit(1);
}
for(i=0;i<number;i++){
printf("Input an integer for %d-th element:", i);
scanf("%d", &pseudo_array[i]);
}
printf("Set integers are\n");
for(i=0;i<number;i++){
printf("%d\n", pseudo_array[i]);
}

free(pseudo_array);

return 0;
}

上のプログラムを、「char型を要素に持つ配列のようなもの」を扱うようにし、実行後に入力した文字列を%sで表示できるようにするにはどのようにコードを書き換えれば良いのでしょうか?下のコードは雛形です。

#include<stdio.h>
#include<stdlib.h>

int main(void){
/***何か書く(適切な型)***/ *pseudo_array;
char yomisute;/***読み捨て用***/
int number, i;

printf("Input a positive integer:");
scanf("%d", &number);
scanf("%c", &yomisute);/***改行文字読み捨て***/
/*** 何か書く(領域確保と失敗時の処理) ***/
for(i=0;i<number;i++){
printf("Input a character for %d-th element:", i);
/***何か書く(キーボード入力文字を格納)***/
scanf("%c", &yomisute);/***改行文字読み捨て***/
}
/***何か書く***/
printf("Set string are %s\n", pseudo_array);

/***何か書く(領域解放)***/

return 0;
}

A 回答 (1件)

#include<stdio.h>


#include<stdlib.h>

int main(void){
 /***何か書く(適切な型)***/ char *pseudo_array;
 char yomisute;/***読み捨て用***/
 int number, i;

 printf("Input a positive integer:");
 scanf("%d", &number);
 scanf("%c", &yomisute);/***改行文字読み捨て***/
 /*** 何か書く(領域確保と失敗時の処理) ***/
 pseudo_array = malloc((number + 1) * sizeof(char));
 if (pseudo_array == NULL) {
  printf("Out of Memory\n");
  return EXIT_FAILURE;
 }
 for(i=0;i<number;i++){
  printf("Input a character for %d-th element:", i);
  /***何か書く(キーボード入力文字を格納)***/
  scanf("%s", &pseudo_array[i]);
  scanf("%c", &yomisute);/***改行文字読み捨て***/
 }
 /***何か書く***/
 pseudo_array[i] = '\0';
 printf("Set string are %s\n", pseudo_array);

 /***何か書く(領域解放)***/
 free(pseudo_array);

 return 0;
}
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!