unsigned long long int n;

printf("Please input value : \n");
scanf("%llu", &n);
printf("n = %llu\n", n);

という感じで入力した数字をそのまま出力するプログラムを組んだのですが、そのまま表示されません。どうしてなんでしょうか???
コンパイルは通るのですが…。
また、解決方法はどんなものがあるのでしょうか???
教えていただければ助かります。
お願いします。

このQ&Aに関連する最新のQ&A

A 回答 (3件)

FreeBSD の gcc-2.7.2.1 で実行しましたが、特に問題なく動作します。


もしかして、変数の最大値を超えて入力してはいませんか?
固定領域長の変数だと、どんなコンパイラでも上限は存在します。


bash-2.02# ./a.out
Please input value :
4294967295
n = 4294967295
bash-2.02# ./a.out
Please input value :
4294967296
n = 0


巨大な整数で計算したい場合は、多バイト長整数ライブラリを使用して下さい。
サンプルとして g++ の Integer.h を使用した例(適当すぎるけど^^;)を載せます。

bash-2.02# cat test2.cc
#include <std.h>
#include <g++/Integer.h>

int main( int ac, char *av[] )
{
Integer *val1 = new Integer(100);
Integer *val2 = new Integer(100);
*val1 = atoI("12345678901234567890");
*val2 = atoI("56789012345678901234");
cout
<< *val1
<< " + "
<< *val2
<< " = \n\t"
<< *val1 + *val2
<< "\n";
cout
<< *val1
<< " * "
<< *val2
<< " = \n\t"
<< *val1 * *val2
<< "\n";
return 0;
}
bash-2.02# ./a.out
12345678901234567890 + 56789012345678901234 =
69134691246913469124
12345678901234567890 * 56789012345678901234 =
701098911537997408286566514313977776260
    • good
    • 0
この回答へのお礼

詳しい説明ありがとうございました。
おかげ様で無事解決することができました。

お礼日時:2001/04/27 12:56

表示されないと言うのはどういうことですか?


どんな感じになるのでしょうか。

この回答への補足

すいません。説明不足でした。
ubsign long long int型の変数に
4294967295以上の数を入力した場合に正しく出力されないのです。
それをするためにはどうすれば良いのでしょうか?

補足日時:2001/04/15 23:32
    • good
    • 0
この回答へのお礼

ありがとうございました。
無事解決いたしました…。

お礼日時:2001/04/27 12:55

えっと...まず使っているソフトを教えてください。


Windowsアプリを作るソフト(VC++など)では、使えないこともあるので...
もう少し詳しい状況(どんなプログラムを作ろうとしたのかなど)を教えていただけるとありがたいです。

この回答への補足

今作成しているのは、大きい数の素因数分解を行うプログラムです。
使っているのはよく分かりません…。
でもLinuxを使っています。

補足日時:2001/04/14 19:07
    • good
    • 0
この回答へのお礼

ありがとうございました。
無事解決いたしました…。

お礼日時:2001/04/27 12:54

このQ&Aに関連する人気のQ&A

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

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QMr. Sato will now be in charge of sales. のnow

Mr. Sato will now be in charge of sales.
サトウさんはこれから販売を担当することになる。

という例文がありました。

ここに now が入るのが少し気になっています。

Mr. Sato will be in charge of sales.
だと、この先いつからの事なのか分からないのでnow が入っているのだと思いますが、
Mr. Sato will be in charge of sales from now. でも同じでしょうか?

元の文のように、will と be の間に入る場合、前置詞は不要でしょうか?

細かい疑問で恐縮ですが、宜しくお願いします。

Aベストアンサー

「now」だけで「今から」という意味にもなります。特に「will」などの未来の表現があるときはそうではないでしょうか。
「Mr. Sato will now be in charge of sales.」において前置詞が不要なのは、「now」が副詞として機能しているからです。

「Mr. Sato will be in charge of sales from now.」では「now」という名詞に、起点を表す前置詞「from」がついて「今から」という意味になっています。

一つ付け加えると、「from now」より「from now on」の方が好ましいですね。

Q変数の型でlong longとunsigned long longと言うのは何ですか?

教えていただきたいのですが、変数の型にlong longやunsigned long long
なるものがあると聞いたのですが、どのようなものでしょうか?
また、どのように宣言するのでしょうか?通常のlongなどと同じ要領で宣言し
てやれば良いのでしょうか?
もし、この型がある場合に、制約はあるのでしょうか?Unixでしか使えないとか
の制約等ありましたらぜひ教えてください。
お願いいたします。

Aベストアンサー

long longはANSI-Cの新しい改訂版C99で正式に採用されました。
C99以前のANSI-C対応処理系では独自拡張(gccなど)です。
環境の指定が無いので独自拡張は無視してANS-C99について解答します。

long longまたはlong long int=64ビット符号付き整数
unsigned long longまたはunsigned long long int=64ビット符号無し整数

定数の場合はLL(=long long)またはLLU(=unsigned long long)を付加する。
LL,LLU小文字でもよい。
1LL,0LL,100000000000lluなど

long long系の整数使うライブラリ関数について
・printf/scanf系書式の追加
%lld(=long long) および%llu(=unsigned long long)
・その他ライブラリ関数
文字列整数化:strtollが用意される。

現状では日本語で読めるC99の包括的な資料は存在しません。
英語版で良ければC99のドラフトが参考URLで読むことができます。

参考URL:http://anubis.dkuug.dk/JTC1/SC22/WG14/

long longはANSI-Cの新しい改訂版C99で正式に採用されました。
C99以前のANSI-C対応処理系では独自拡張(gccなど)です。
環境の指定が無いので独自拡張は無視してANS-C99について解答します。

long longまたはlong long int=64ビット符号付き整数
unsigned long longまたはunsigned long long int=64ビット符号無し整数

定数の場合はLL(=long long)またはLLU(=unsigned long long)を付加する。
LL,LLU小文字でもよい。
1LL,0LL,100000000000lluなど

long long系の整数使うライブラリ関数について
・...続きを読む

Qdue to limitations in amount of charges - 退任の理由

こんにちは。和訳のアドバイスをお願いいたします。

ある会社のニュースレターの中で、意味が分からないところがあります。

<タイトル>
Resignation of two auditors due to limitations in amount of charges

<本文>
Company A announces the resignation of two auditors, Mr. B and Mr. C, as they exceed the limits in such charges established by the issuing regulations.

2人の監査役が退任した理由は何なのでしょうか?
chargesは責務という意味でしょうか?'the issuing regulations'が何を指しているのかもよく分かりません。ちなみに、このニュースレターは上記の文章から始まっており、それに続く文章の中にも手がかりらしきものが見当たりません。

Aベストアンサー

原文を拝見しましたところ、会社側もはぐらかして書いているような印象を受けます。つまり二名の辞任は名誉なことでなく、むしろ何かをやらかして「解雇」されたのだろうと察します。

ご存知の通り、charge とは「告発、訴状」という意味があります。でも、その場合は amount ではなく number of charges と言うような気がするのです。

ふと思ったのですが、charge とは会社がこれら二名に付与していたクレジットカードのこと、amount は課金額のことだと考えると、少なくとも文章のツジツマが合いませんか? 会社が決めていたリミットを越えて直接業務とは関連性がない課金が何回もあり、社内調査の結果、明らかに違法・不正と見なされるものだったとしたら、引責で辞任に追い込まれることもあるでしょう。二人となると共犯なのでしょうか、要するに「使い込み・横領による解雇」ということです。

文章だけを元にした全く想像ですので、ご参考までに。是非ご質問者に究明して頂きたいです。

Qfor(int i = 100, long n = 1; i > n/3i; i++)

for(int i = 100, long n = 1; i > n/3i; i++)
のように、初期設定で型の違う変数を宣言したいんだけど
C++ではこんなふうに2つ以上の型を宣言してはいけないんですか?

Aベストアンサー

,

コンマ演算子の原理です。
forの初期化文で "," で区切れるのは値を返す文だけです。
よってintステートメントもlongステートメントも値を返さないので、この文では使用できません。

というか、むしろ、intステートメントの第2引数としてlongが認識されてしまいます。
外で

int i; long n;

とし

for(i = 0, n = 0; hoge; hoge)

なら可能です。

Q次の文のin charge ofは誤文?

「娘たちは侍女たちに預けて逃がしてくだされ。」

の英訳を見ると、

「Let my daughters escape in charge of attendants.」

とありました。

しかし、辞書を確認すると、

http://irleigo.blog105.fc2.com/blog-entry-314.html

で書かれてあるように、

『「of 以下の人に任せる」と言う意味で使う場合は

charge の前に the を置く』

とありました。

最初に示した英訳文は誤文でしょうか?

Aベストアンサー

ジーニアス英和辞典にもおっしゃるような記述がありますが,
研究社の英和大辞典では
in (the) charge of ~「~に預けられて,保護されて」
a patient in (the) charge of a nurse「看護師に委ねられている患者」
とあります。

ランダムハウス英和大辞典にも
アメリカ英語として
in charge of 人で「人の支配・管理・責任下に,世話になって」
とあります。

of 自体,主格関係・目的格関係いずれもありますので,
どちらにもとれる余地はあると思います。
the の有無でいくらでもこじつけはできると思いますが,
in search of ~とか,慣用的に the はとれるものです。

let, escape などの語で,監督者,被監督者が明確というのもあるでしょう。

また,he のような代名詞で「彼の監督下で」なら in the charge of him とするより,
in his charge とする方が普通です。

Qprintf("%2.d",0);は?

printf("%2.d",0);
を表示すると何も表示されません・・。
どうしたらいいのでしょうか?

Aベストアンサー

「%2.d」は「%2.0d」と同じです。

つまり「2文字の幅で、少なくとも0ケタの数字を書け」です。

この「少なくとも0ケタの数字を書け」は、言い替えれば「先頭にあるゼロは、全体が0ケタになるまで削ってよし」と言う意味です。

結果「_0」('_'は半角スペースの意味)の先頭のゼロを0ケタになるまで削るので「__」になります。

ゼロの時に「_0」と表示したいなら「%2d」と指定しましょう。

QIn practical life this mode of thin

In practical life this mode of thinking will have the same effect upon the personal mind as that which is secured in a wire that is not charged when it touches a wire that is charged.


以下の文章があります。(古い精神哲学書の一節です。)この文章が意図することをご教示いただけないでしょうか?

In practical life this mode of thinking will have the same effect upon the personal mind as that which is secured in a wire that is not charged when it touches a wire that is charged.


ご参考までに前の文の後には、以下の文章が続きます。
Thegreat within is a live wire; when the mind touches the great within, it becomes charged more and more with those same immense powers;~

In practical life this mode of thinking will have the same effect upon the personal mind as that which is secured in a wire that is not charged when it touches a wire that is charged.


以下の文章があります。(古い精神哲学書の一節です。)この文章が意図することをご教示いただけないでしょうか?

In practical life this mode of thinking will have the same effect upon the personal mind as that which is secured in a wire that is not charged when it touches a wire that is charged....続きを読む

Aベストアンサー

電気関係のことが分からないのでちょっとずれた回答になる可能性大ですが、一応こんな感じではないかと思いました。
「実際の生活においてこの思考モードは、ちょうど帯電していないワイヤーが帯電しているワイヤーに触れたとき内部に獲得されるのと同じような効果を、個人の心に与える」

Q構文中の『\n』、『\n\t』について

構文中の『\n』、『\n\t』について

下記のC言語構文中の『\n』、『\n\t』の部分がどうしてもわかりません。

#define SLEEP asm volatile("sleep\n"::)
または
#define SLEEP asm volatile("sleep\n\t"::)

ご教授下さい。
よろしくお願い致します。

Aベストアンサー

『\n』は改行、
『\n\t』は改行して、(行頭に)タブを入れる。
 

Qpreferral of charges の訳は?

裁判規定の誓約関する文章に出てくる
preferral of charges の訳を教えてください。

Aベストアンサー

私は法律は専門外です。検索すると出て来ます。
http://www.tpub.com/content/administration/14135/css/14135_201.htm
http://www.justia.com/dictionary/preferral-of-charges.html
に詳しい解説があります。原告側が被告の罪の重さを指定提案する法手続きです。

Qprintf( "%d", i % 10 );で?

int count;
int i;
scanf( "%d", &count );
for( i = 0 ; i < count ; i++ )
printf( "%d", i % 10 );「iを10で割った余り」だそうです。
i%5とした場合、 
 仮に5と入力すれば、01234と表示すると思いますが、
何でiを5で割れば5進数みたいにコンピュータが認識するのですか?
理論だけ勉強中で、実際試したことがありません? 
よろしくお願いします。

Aベストアンサー

例えば、246を例に考えてみます。

246を5で割ると49で余りが1

これは書き換えると
246 = 49x5 + 1 という事ですね。

次に49について同様に行なうと
49を5で割ると9で余りが4

これは書き換えると
49 = 9x5 + 4という事ですね。

最初の結果とあわせると、
246 = 9(x5x5) + 4(x5) + 1
という事ですね。

同様に9についても計算すると

246 = 1(x5x5x5) + 4(x5x5) + 4(x5) + 1

となります。


5で割った答えと5で割った余りは、5進数で一つ上の桁へ移せる部分とその桁に残る部分を分けている事になります。
10進数でも32を考えた時、30の部分は上の桁に移せる部分で(10で割った答え部分)2はその桁に残る部分(2 = 32 % 10)ですよね。


人気Q&Aランキング

おすすめ情報