電子書籍の厳選無料作品が豊富!

英単語(英文字で最大15文字)を*があわられるまで1つずつ読み込み、読み込んだ英単語の文字数を計算して同一文字数の単語の出現回数を表示するプログラムです。

以下のプログラムを関数の引数及びその中実行文中でポインタ変数を使用するものを作りたいのですが、以下のプログラムは正常に動いているのですが、関数が使われていません。どう分けていいか分からないので教えてくださると助かります。


#include<stdio.h>
int main(void)
{
char mojiretu[15],*pmoji
int con[15]={0},i,j;
pmoji=&mojiretu[0];
printf("課題データ\n");
scanf("%s",mojiretu);
while(*pmoji!='*')
{
for(j=0;*(pmoji+j)!='\0'j++)
{}
con[j-1]++;
scanf("%s",mojiretu);
}
printf("文字数\t出現回数\n")
for(i=0;i<=14;i++)
printf("%d\t%d\n",i+1,con[i]);
}

A 回答 (1件)

「正常に動いている」プログラムにいくつかの基本的な問題があります。



1. char mojiretu[15],*pmoji
区切りのセミコロンがありません。

2. printf("文字数\t出現回数\n")
区切りのセミコロンがありません。

コンパイル・エラーとなって、正常に動かす以前の問題です。



3. scanf("%s",mojiretu); ~ while() {scanf("%s",mojiretu);}

課題データと while()ループ脱出のために mojiretu[]の二度読み込みを行っており、動作不定となっています。


よって、回答不能です。
    • good
    • 0

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