無題

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

無題

#1

投稿記事 by 合計 » 14年前

以前も同じ質問をさせて頂いたのですが・・・
もう一度助けてくださいww
数値を入力していき、
0が入力されたら合計値をだす(サブルーチンにて)
プログラムを作成したいのですが・・

#include <stdio.h>
#define MAX100
int function(int *a)
void main(void)
{
  int a[MAX];
int b;
int sum;
printf("数値を入力して下さい\n");

b = 0;
do{
scanf("%d",&a);
}
while(a[b-1] ll (b<MAX));
return 0;
}
int function(int *a)
{
int b;
int sum =0;
b = 0;
sum = sum +a;
b++;
printf("合計%d\n",sum);
}


すげえ間違えまくってると思います・・・
↑な感じで作るにはどう修正したら良いでしょうか。。

パコネコ

Re:無題

#2

投稿記事 by パコネコ » 14年前

#include <stdio.h>
#define MAX100 //スペースは?
int function(int *a) //;?
void main(void)
{
  int a[MAX];
int b;
int sum;
printf("数値を入力して下さい\n");

b = 0;
do{
scanf("%d",&a);
//b++?
}
while(a[b-1] ll (b<MAX));//順番逆のほうがいいかも
//functionは使わないんですか?おそらく[sum=function(a);]
return 0; //voidになってますが…
}
int function(int *a)
{
int b;
int sum =0;
b = 0;
//ループ欲しいですね…
sum = sum +a;
b++;
printf("合計%d\n",sum);
//int宣言なのに…returnは?
}
とりあえず間違ってそうなところチャック入れてみました。
何か勘違いがあった場合はすいません…。
それはそうと…起動されたときに100回も入力する気ですか?
大変なので回数を減らすか、ランダムにすべて代入させましょう。
(初めからそのつもりならすみません)

霜焼け

Re:無題

#3

投稿記事 by 霜焼け » 14年前

私からも2点

1つは、配列aの初期化をしないと、0を入力してループから抜けた(100回入力していない)時にfunction関数内で初期化前のゴミが入った変数を参照してしまいます。

2つ目は、0を入力してループを抜けるなら、while(a[b-1] ではなく、
forでループさせて
if(a==0){break;}で脱出の方が良いと思います

ゆーずぃ

Re:

#4

投稿記事 by ゆーずぃ » 14年前

静的変数を使えばaを配列にする必要はなくなりますよ~。
もしも無理にメインループ内でやりたいなら別ですけど、その処理は短くしようと思えばこれだけで済みます。
#include <stdio.h>

void Sum(void){

    int value, sum;
    value = sum = 0;

    do{
        puts("数値を入力して下さい");
        scanf("%d",&value);
        sum = sum + value;
    }while(value);

    printf("合計%d", sum);
}

void main(void){

    Sum();
}
ですが、最初のうちは自分で考える事が大事なので、パコネコさんのダメ出しをよく読んで自分なりのプログラムを必ず完成させてください。私のはこんな考え方もある、という考え方の参考程度でお願いします。

box

Re:

#5

投稿記事 by box » 14年前

> 静的変数を使えば

ところが、お書きになったサンプルコードでは
使っている形跡がありません。
質問者さんが混乱をきたしそうです。

ゆーずぃ

Re:

#6

投稿記事 by ゆーずぃ » 14年前

>boxさん

私のは別の考え方の参考として見てほしかったので、あえて使わなかったのですが、確かに混乱してしまうかもしれませんね。boxさん、質問者さん、すみませんでした。

ちょっと時間が無いので静的変数でのサンプルは書きませんが、質問者さんからの要望があれば書きます。
ですが質問者さんの書き込みが無いところをみると捨て板かもしれないので大丈夫そうですね。

閉鎖

“C言語何でも質問掲示板” へ戻る