C言語の問題

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら

トピックに返信する


答えを正確にご入力ください。答えられるかどうかでスパムボットか否かを判定します。

BBCode: ON
[img]: ON
[flash]: OFF
[url]: ON
スマイリー: OFF

トピックのレビュー
   

展開ビュー トピックのレビュー: C言語の問題

Re: C言語の問題

#4

by るびーぐらふる » 8年前

できました!ありがとうございます。

Re: C言語の問題

#3

by 白い変人 » 8年前

詳細な仕様が分からないので、適当に動作する程度に添削してみましたが、

>find_zero(char *a, int n)

は引数からして実用上は事故を起こしやすい設計の関数と推測されます。

「何処がどの様に事故を起こしやすいのか?」という考察も含め、以下の添削結果は参考程度に、仕様に合致する様に修正すると宜しいと思います。

コード:

#include <stdio.h>
 
void find_zero(char*,int);
 
int main(void){
	int i;
	int ch;
	char a[100];
	
	for(i=0;i<100;i++) a[i]='\0';
	
	for(i=0;(ch=getchar())!='\n';i++) a[i]=ch;
	
	find_zero(a,i);
	
	return 0;
}
 
void find_zero(char *a, int n){
	int i;
	
	printf("Zero in ");
	
	for(i=0;i<n;i++) if(a[i]=='0') printf("%d ",i);
	
	printf("\n");
}

Re: C言語の問題

#2

by るびーぐらふる » 8年前

このソースでは警告がでますし、解答になっていません

C言語の問題

#1

by るびーぐらふる » 8年前

C言語初心者です。

複数の数字,アルファベットを入力とし、その中から 0 が何番目に存在するかを表示する プログラムを作成してください。getchar 関数を用いること。関数 void find_zero(char *a, int n)を定義して使用すること。

という問題に取り組んでいるのですが、どうすればいいのかわかりません。もしよろしければご教授願います。
配列の数は勝手に決めていいそうです。
以下は私が書いてみたソースです。

コード:

#include <stdio.h>

void find_zero(char*,int);

int main(void)
{
    int i;
    int ch;
    int length;
    char a[100]={'\0'};
    i=0;
    while((ch=getchar())!='\n')
    {
        a[i]=ch;
        i++;
        length=i;
    }
    find_zero(&a[100],length);
    return 0;
}

void find_zero(char *a, int n)
{
    printf("Zero in ");
    int i;
    char *b;
    for(i=0;i<n;i++)
    {
        b=*a+i;
        if(*b==48)
            printf("%d ",i);
    }
    printf("\n");
}

ページトップ