입력받은 정수 n이 양수이면 n에서 2 * n까지의 정수의 합을 구하고, n이 음수이면 2 * n에서 n까지의 정수의 합을 구하는 프로그램을 작성하여라.
단 n이 양수이면 for 문을 사용하여 합을 구하고, 음수이면 while 문을 사용하여 합을 구하여라.
#include <stdio.h>
int main(void) {
int i, n, k;
long long m;
printf(\"정수를 입력 하세요 : \");
scanf(\"%d\", &n);
if (n >= 0){
for (m = i = 0; i <= n*2; i++)
m += i;
printf(\"n에서 n*2까지의 정수의 합 = %lld\\n\", m);
}
else {
k = n*2;
while (i <= n*2) {
m += k;
--k;
} printf(\"n에서 n*2까지의 정수의 합 = %lld\\n\", m);
}
}
여기서 양수는 값이 제대로 나오는데
음수에서는 값이 안구해서 수정좀 해주세요..ㅠ
내가 건축이라서 몰라..
i,m 초기화가 안되있고 while문 안에 i값을 바꿔줘야 와일문에서 빠져나오지 않나요?
while문 안에서 i 안바꾸냐
for는 초기화랑 i값 바꾸는게 있는데 while에서는 직접 while문안에서 바꿔줘야해요 초기화도 해줘야하고
그럼 초기화랑 i 어케 바꿔여 수업을 제껴서..ㅠ
파이썬느님ㄲㄲ
http://ideone.com/Asjfn
변수선언할때 int i=0; int m=0; 하고 while문안에 i++; 을 넣어주면 될듯
변수선언은 했는데,,, while문안에 i++을 넣다니?? --k 대신 i++하면 되다는 뜼?
이게 n부터 구하는게 아니라 n*2구하는거라 머리가 더복잡해..
i를 초기화 했으면 0으로 와일문을 들어가자나 근데 와일문 안을 아무리 반복해도 i가 변하지 않으니 빠져 나갈수가없어서 i값을 증가시켜줘야 2n만큼 커졌을때 while문을 빠져 나감
그런데 문제는 n*2부터 역으로 구해야되는데 아 얘 잘못한거 같아서요..
n에서 2n까지면 for문안에 i를 n으로 초기화해야하고 와일문에서도 들어가기전에 n으로 초기화후 i-- 집어 넣어주면 될거같은데요
정말 죄송한데요 한번 while만 어떻게 짜주시면 안되요??ㅠ도대체 이해가 안되서요.