掲示板利用宣言

 次のフォームをすべてチェックしてからご利用ください。

 私は

 題名と投稿者名は具体的に書きます。
 課題の丸投げはしません。
 ソースの添付は「HTML変換ツール」で字下げします。
 返信の引用は最小限にします。
 環境(OSとコンパイラ)や症状は具体的に詳しく書きます。
 返信の付いた投稿は削除しません。
 マルチポスト(多重投稿)はしません。

掲示板2

管理者用メニュー    ツリーに戻る    携帯用URL    ホームページ    ログ    タグ一覧

No.25023

四捨五入
投稿者---森(2005/12/30 14:37:11)


配列の四捨五入を教えていただきたいのですが・・・。


//
void main(void)
{

int i;
int n[10000];
double nn[10000];
double sc=0.00000085772451573301146;
double sh=1.5;

n[1]=10;

for(i=1;i<=1000;i++)
{
nn[z]=(pow(z,1/sh)-pow(z-1,1/sh))*n[1];
n[z]=int(nn[z]+0.5);
}

このような感じで、配列で与えられるnn[i]の値を
四捨五入して、n[i]に放り込んでいくプログラミングを
つくったのですがうまく実行してくれません。
プログラミング初心者でお手数かけますが
よろしくお願いします。


この投稿にコメントする

削除パスワード

発言に関する情報 題名 投稿番号 投稿者名 投稿日時
<子記事> Re:四捨五入 25024 まきじ 2005/12/30 14:41:15
<子記事> Re:四捨五入 25025 RiSK 2005/12/30 15:17:16


No.25024

Re:四捨五入
投稿者---まきじ(2005/12/30 14:41:15)


> nn[z]=(pow(z,1/sh)-pow(z-1,1/sh))*n[1];
> n[z]=int(nn[z]+0.5);

z が宣言されいない。


この投稿にコメントする

削除パスワード

No.25030

Re:四捨五入
投稿者---森(2005/12/31 04:44:37)


すいません。zではなくiでした。

void main(void)
{

int i;
int n[10000];
double nn[10000];
double sc=0.00000085772451573301146;
double sh=1.5;

n[1]=10;

for(i=1;i<=1000;i++)
{
nn[i]=(pow(i,1/sh)-pow(i-1,1/sh))*n[1];
n[i]=int(nn[i]+0.5);
}





この投稿にコメントする

削除パスワード

No.25031

Re:四捨五入
投稿者---iijima(2005/12/31 09:15:12)


キャストの構文が間違っています。

# RiSKさんの回答をよく研究すれば分かる問題です。
# ソースの字下げも指摘されているのに直っていません。
# 回答をもらったらきちんと読んで咀嚼しましょう。
# 「この質問者は回答をきちんと読まないな」と思われたら、
# 回答がつきにくくなりますよ。



この投稿にコメントする

削除パスワード

No.25032

Re:四捨五入
投稿者---森(2005/12/31 15:06:11)


すいません。




この投稿にコメントする

削除パスワード

No.25025

Re:四捨五入
投稿者---RiSK(2005/12/30 15:17:16)


>配列の四捨五入を教えていただきたいのですが・・・。

参考になりますか?
#include<stdio.h>
double round(double d){return (int)(d+.5);}
int main(void){
    int i; double d;
    for(i=0;i<=10;++i){
        d=i/10.;
        printf("%f %f\n",d,round(d));
    }
}

>このような感じで、

「感じ」じゃダメです。ソースはコピペしてください。
字下げもされてないし。


この投稿にコメントする

削除パスワード

No.25033

Re:四捨五入
投稿者---森(2005/12/31 15:16:43)


#include<stdio.h>/* 基本入力関数の定義 */
#include<math.h>/* 数学関数を使うための準備 */
#include<stdlib.h>

void main(void)
{

 int n[100000];
 double nn[100000];
 int z;

 double sc=0.00000085772451573301146;
 double sh=1.5;

 n[1]=25;

  for(z=1;z<=10;z++)
  {
   nn[z]=(pow(z,1/sh)-pow(z-1,1/sh))*n[1];
   n[z]=int(nn[z]+0.5);
   
   printf("n[%d]\t",z);
   printf("%d\n",n[z]);

  }
}

これがソースです。実行してくれないんですが
どうしたらよいでしょうか?


この投稿にコメントする

削除パスワード

No.25034

Re:四捨五入
投稿者---si(2005/12/31 16:10:36)


まず間違いから
>   n[z]=int(nn[z]+0.5);
キャストのつもりなら表記の仕方違います。
浮動小数点ー>整数変換なら、たいがいのコンパイラは、何もしなくても変換してくれます。
* n[z]=nn[z]+0.5; でOK

>実行してくれない
コンパイル、リンクはしましたか?
mathライブラリはリンクしましたか?
* 実行環境を書かないと、これ以上のレスは出来ません。


この投稿にコメントする

削除パスワード

No.25035

Re:四捨五入
投稿者---森(2005/12/31 17:33:30)


ありがとうございます。
よいお年を!!!


この投稿にコメントする

削除パスワード

No.25036

Re:四捨五入
投稿者---蛇足(2006/01/01 01:09:58)


>まず間違いから
>>   n[z]=int(nn[z]+0.5);
>キャストのつもりなら表記の仕方違います。

C++にはこういう形式のキャストがあるから、参照したテキストがC++なんじゃないかな。


この投稿にコメントする

削除パスワード

No.25037

Re:四捨五入
投稿者---RAPT(2006/01/01 20:51:41)


>>まず間違いから
>>>   n[z]=int(nn[z]+0.5);
>>キャストのつもりなら表記の仕方違います。
>
>C++にはこういう形式のキャストがあるから、参照したテキストがC++なんじゃないかな。

キャストはCでもC++でも、(型名)値 か、C++限定で、static_cast<型名>(値)
の形式で、他に dynamic_cast, const_cast, reinterpret_cast しかありえません。



この投稿にコメントする

削除パスワード

管理者用メニュー    ツリーに戻る    携帯用URL    ホームページ    ログ    タグ一覧