ここから本文です

c言語において1から10までの整数和を求めるプログラム教えてください。

meg********さん

2019/12/100:30:27

c言語において1から10までの整数和を求めるプログラム教えてください。

閲覧数:
26
回答数:
3

違反報告

ベストアンサーに選ばれた回答

2019/12/107:20:58

一番素直には

#include <sttdio.h>
int main(void){
int sum=1+2+3+4+5+6+7+8+9+10;
printf("%d",sum);
return 0;
}

なんの芸もないです。Cを始めて初日ならこれも仕方ないでしょう。
3日ぐらい経って、ループを習ったらその練習として

#include <sttdio.h>
int main(void){
int sum=0;
for(int i=1;i<=10;i++){
sum+=i;
}
printf("%d",sum);
return 0;
}

あるいは

#include <sttdio.h>
int main(void){
int sum=0;
int i=1;
while(i<=10)
sum+=i++;
}
printf("%d",sum);
return 0;
}



#include <sttdio.h>
int main(void){
int sum=0;
int i=1;
do{
sum+=i++;
}while(i<=10);
printf("%d",sum);
return 0;
}

なんてことをやるかも知れません。まぁ、ループの練習ですから、真面目に一つ一つ足していくなんていう非効率も仕方ないでしょう。

実用的には、等差数列の項の和の公式を使えば

#include <sttdio.h>
int main(void){
int sum;
sum=(1+10)*10/2;
printf("%d",sum);
return 0;
}

といったところですか。

ここで、プログラマの美徳の一つとして「怠惰である」ことと言われています。この怠惰というのは、似た仕事を繰り返すのを嫌がって、プログラムをより汎用に作るとかそういう習慣のこと。その路線の一つとして「マジックナンバー」はよろしくないです。ありがちな変更に備え、プログラム中にベタに裸の数字を使うことは避け、なんらかのシンボルに数値を割り当てます。
後に1~100の和の計算になったとたんにプログラムの中を見渡して、「この10ってなんだったけ?」と思い出そうとしたりするのはちょっと。まぁ、本当に1~10を計算するだけならいいですけど、実際のプログラムでは様々な要素があって、それに対応するための「習慣」としてはいまから始めるのも悪くないでしょう。

#define START 1
#define END 10

#include <sttdio.h>
int main(void){
int sum;
sum=(START+END)*(END-START+1)/2;
printf("%d",sum);
return 0;
}

これくらいやっておくとまぁ文句を付けられることはないんじゃないかと思います。

この回答は投票によってベストアンサーに選ばれました!

ベストアンサー以外の回答

1〜2件/2件中

並び替え:回答日時の
新しい順
|古い順

bakd******さん

2019/12/101:42:50

int x = 1+2+3+4+5+6+7+8+9+10;

プロフィール画像

カテゴリマスター

あみやさん

2019/12/101:27:40

printf("%d",(1+10)*10/2);

あわせて知りたい

この質問につけられたタグ

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる