코딩도장

메모리공간을 동적으로 사용하여 데이터 관리하기

프로그램 실행 순서

  1. 입력할 정수의 개수를 사용자로부터 입력 받는다.
  2. 입력받은 정수의 개수만큼 정수를 입력받는다.
  3. 입력받은 정수의 합과 평균 값을 출력한다.
  4. 할당된 메모리공간을 비운다.

요구사항

  1. 메모리공간은 사용자의 입력 수의 따라 변동된다.
  2. 사용한 공간은 마지막에 비워야 한다.
  3. 배열을 사용하면 안된다.
list

2015年05月13日 12:41

JS.LIM

(追記) (追記ここまで)
댓글 작성은 로그인이 필요합니다.
너무 쉬워요. n = input ("Number of Integer? ") n_list = input ("Write Number(s): ").split(' ') sum = 0 for i in n_list: sum += int(i) avg = sum/int(n) print ("SUM: %d" %sum) print ("AVG: %d" %avg) del n_list - 마포네로, 2015年05月14日 17:54 M D
+1 int(i) 구문이 배열 구조를 사용한거 아닌가요?? 제가 파이선은 잘 몰라서요...ᅲᅲ - JS.LIM, 2015年05月15日 10:43 M D
이건 배열이 아니라 반복문입니다. - SungWook Jung, 2017年04月24日 14:48 M D
split사용하면 배열 나오는거 아닌가요? 리스트인데 - 빗나감, 2017年12月12日 23:07 M D
+1 맨 윗분, 스플릿함수 쓰면은 결과가 리스트가 되어서 문제의 요점에 어긋나는게 맞은것 같아요. 분명 어렵지 않은 문제이긴 한데, 굳이 리스트를 쓴 이상 반복문 없이도 내재함수로 풀 수 있는 이점이 있습니다. 물론 이 문제에서는 시간복잡도가 그리 차이나지는 않지만, 만약 난이도가 높아져서 재귀나 메모이제이션이 불가피한 코딩의 경우, 조금이라도 반복문을 줄여서 시간복잡도를 줄이는 편이 좋을것 같습니다. 그 점이 살~짝 아쉽군용 - 암살자까마귀, 2019年04月30日 19:18 M D
이곳에 해답을 쓰지 말아주세요 // 파이썬은 걍 리스트로 해결되는 문제 아닌가요? 파이썬 리스트는 동적할당으로 아는데 근데 파이썬은 메모리가 실제로 비워졋는지 알 수 없으므로 이 문제는 풀 수 없을 듯. - yhpdoit, 2020年04月10日 12:14 M D
이렇게 풀면 처음에 입력받은 정수의 개수만큼 정수를 입력받는건 강요가아니라 사용자가 스스로 자기가 처음에 쓴 정수만큼 써야하는거아닌가요? - fox.j, 2021年02月05日 22:06 M D
심지어 동작도 제대로 안하는거 같은데요 쉽다고 하시면서 적으셨길래 파이썬 잘하시는 줄 알았는데 그것도 아니네요 - 흐음맨, 2022年02月05日 18:20 M D
(注記) 상대에게 상처를 주기보다 서로에게 도움이 될 수 있는 댓글을 달아 주세요.

238개의 풀이가 있습니다. 1 / 24 Page

num_of_n = int(input("입력할 정수 개수: "))
Sum = 0
for x in range(num_of_n):
 Sum += int(input("Enter num%d: " % (x+1)))
print("Sum: %d" % Sum)
print("Avg: %.2f" % (Sum / num_of_n))
del num_of_n, Sum, x

2015年12月31日 20:40

SPJung

댓글 작성은 로그인이 필요합니다.
(注記) 상대에게 상처를 주기보다 서로에게 도움이 될 수 있는 댓글을 달아 주세요.
 1 #include <iostream>
 2 #include <cstring>
 3 using namespace std;
 4 
 5 int main()
 6 {
 7 int *a;
 8 a = new int;
 9 cout << "메모리양을 정하시오. : ";
 10 cin >> *a;
 11 cout << endl << endl;
 12 
 13 int *num;
 14 num = new int(*a);
 15 cout << "입력받을 정수의 개수를 정하시오: ";
 16 cin >> *num;
 17 
 18 int *count;
 19 count = new int(*a);
 20 
 21 int *total;
 22 total = new int(*a);
 23 
 24 for (int i=0;i<*num;i++){
 25 cout << i+1 << " 번째 숫자 입력 : ";
 26 cin >> *count; 
 27 *total += *count;
 28 }
 29 cout << "입력된 정수의 합은 : " << *total - *a << endl;
 30 cout << "입력된 정수의 평균은 : " << double(*total - *a) / double(*num) << endl;
 31 
 32 delete a;
 33 delete num;
 34 delete count;
 35 delete total;
 36 } 
댓글 작성은 로그인이 필요합니다.
(注記) 상대에게 상처를 주기보다 서로에게 도움이 될 수 있는 댓글을 달아 주세요.
#메모리공간을 동적으로 사용하여 데이터 관리하기
갯수 = int(input("입력할 정수 갯수를 적으세요 > "))
sum = 0
for i in range(갯수):
 j = int(input(str(i)+"번정수 > "))
 sum += j
avg = sum/int(갯수)
print("sum =",sum)
print("avg =",avg)
del sum, avg, 갯수

2015年12月12日 12:38

고 윤호

댓글 작성은 로그인이 필요합니다.
(注記) 상대에게 상처를 주기보다 서로에게 도움이 될 수 있는 댓글을 달아 주세요.

반복문으로 해결 가능합니다.


import java.util.*;
public class ExampleTest {
 public static void main(String[] args) {
 Scanner scanner = new Scanner(System.in);
 System.out.print("입력 수 개수 > ");
 int inputNum = scanner.nextInt();
 int inputValue; int sum = 0;
 for(int a = 1; a <= inputNum; a++) {
 System.out.print("입력 수 > ");
 inputValue = scanner.nextInt();
 sum += inputValue;
 }
 System.out.println("합 : " +sum);
 System.out.println("평균 : " +sum/inputNum);
 }
}

2017年04月24日 15:12

SungWook Jung

댓글 작성은 로그인이 필요합니다.
(注記) 상대에게 상처를 주기보다 서로에게 도움이 될 수 있는 댓글을 달아 주세요.
'''result = []
while 1:
 a = int(input("입력 할 정수의 개수를 입력하세요:"))
 for i in range(a):
 b = int(input("정수를 입력하세요:"))
 result.append(b)
 print("sum:",sum(result),"average:",(sum(result)/len(result)))
del result'''
#배열 쓰지 않은 것으로 수정 햇습니다. ᅲ
a = int(input("Num_of_Float:"))
sum = 0
for i in range(a):
 b = input("type your number:")
 sum += float(b)
print("sum:",sum,"average:",sum/a)
del a,sum
댓글 작성은 로그인이 필요합니다.
(注記) 상대에게 상처를 주기보다 서로에게 도움이 될 수 있는 댓글을 달아 주세요.
#include<stdio.h>
#include<stdlib.h>
int main(){
 int *data;
 int t;
 float average;
 printf("입력 할 계수 : ");
 scanf("%d",&t);
 data = (int *)malloc(sizeof(int)*t);
 int i;
 for(i = 0;i<t;i++){
 printf("%d번째 입력 : ", i+1);
 scanf("%d",data+i);
 }
 average = sum(data,t)/t;
 printf("평균은 %f.\n",average);
 free(data);
}
int sum(int *data,int t){
 int sdata;
 int i;
 for(i=0;i<t;i++)
 sdata += *(data+i);
 return sdata;
}

c의 동적 활당으로 메모리를 활당받고 정수 값 받고 평균을 구했습니다. 배열을 쓰지 않고 포인터를 사용했습니다.

2015年06月16日 19:38

강 세운

댓글 작성은 로그인이 필요합니다.
(注記) 상대에게 상처를 주기보다 서로에게 도움이 될 수 있는 댓글을 달아 주세요.
void exce85()
{
 int *n;
 int *input,*sum;
 n = new int();
 input = new int();
 sum = new int();
 *sum = 0;
 scanf_s("%d", n);
 for (int i = 0; i < (*n); i++)
 {
 scanf_s("%d", input);
 (*sum) += (*input);
 }
 printf("합 : %d , 평균 : %f", *sum, ((float)(*sum )/ (*n)));
 free(n);
 free(input);
 free(sum);
}

2015年08月13日 10:09

조서현

댓글 작성은 로그인이 필요합니다.
(注記) 상대에게 상처를 주기보다 서로에게 도움이 될 수 있는 댓글을 달아 주세요.
#include <stdio.h>
#include <malloc.h>
int main(void)
{
 int num;
 int *input;
 int total = 0;
 printf("입력할 정수의 개수 : ");
 scanf("%d",&num);
 input = (int *)malloc(num * sizeof(int));
 for(int i=0;i<num;i++)
 {
 printf("%d번째 정수를 입력하세요 : ",i+1);
 scanf("%d",(input+i));
 }
 for(int i=0;i<num;i++)
 {
 total += *(input + i);
 }
 printf("정수 합 : %d , 평균 값 : %d\n",total,(total/num));
 free(input);
 return 0;
}

C입니다

댓글 작성은 로그인이 필요합니다.
(注記) 상대에게 상처를 주기보다 서로에게 도움이 될 수 있는 댓글을 달아 주세요.
#include "stdafx.h"
#include "stdlib.h"
int _tmain(int argc, _TCHAR* argv[])
{
 int numof_int;int input;
 float sumof_input=0; 
 float average; 
 printf("입력할 정수의 갯수를 입력하세요 :"); 
 scanf("%d",&numof_int); 
 int* p_input=(int*)malloc(sizeof(int)*numof_int); 
 for(int i=0;i<numof_int;i++){
 printf("정수를 입력하세요:\n");
 scanf("%d",p_input+i); 
 sumof_input+=*(p_input+i); 
 }
 average=sumof_input/numof_int;
 printf("입력한 값의 합:%lf \n",sumof_input); 
 printf("입력한 값의 평균:%lf \n",average);
 free(p_input); 
 return 0; 
 }

예상치 못한 형 변환때메 이것저것 공부했네요~ int형/int형 이렇게 나누면 소수점자리가 짤린다는 ᅲ 둘중 하나는 float로 해야 소수점자리가 나오네요. 언어는 C입니다

2015年10月12日 02:55

Kicia Park

댓글 작성은 로그인이 필요합니다.
(注記) 상대에게 상처를 주기보다 서로에게 도움이 될 수 있는 댓글을 달아 주세요.
/*프로그램 실행 순서
입력할 정수의 개수를 사용자로부터 입력 받는다.
입력받은 정수의 개수만큼 정수를 입력받는다.
입력받은 정수의 합과 평균 값을 출력한다.
할당된 메모리공간을 비운다.
요구사항
메모리공간은 사용자의 입력 수의 따라 변동된다.
사용한 공간은 마지막에 비워야 한다.
배열을 사용하면 안된다.
*/
#include<iostream>
using namespace std;
//1.입력할정수의 갯수를 입력받는다
//2.입력받은 정수의 갯수만큼,동적할당하여 공간을 잡아준다
//3.평균값과, 합을 출력한다
//4.출력함과동시에 할당된 메모링공간을 동적할당해제한다.
int Sum(int*space, int length)
//주소값과 길이를 할당받아서 합을구함
{
 int tmp = 0;
 tmp = 0;
 for (int i = 0; i < length; i++)
 {
 tmp = tmp + space[i];
 }
 int Sum = tmp;
 return Sum;
}
void main()
{
 cout << "입력할 숫자의 갯수를 입력하시오:=";
 int number_of_input = 0;
 cin >> number_of_input;
 int *space = new int[number_of_input];//필요한공간만큼 동적할당을 이용,용량 할당할때 () 아니고 [ ] 임 
 cout << endl << endl << "입력갯수만큼 숫자를 입력하시요=";
 for (int i = 0; i < number_of_input; i++)
 {
 cin >> space[i];
 }
 cout << endl << "입력받은숫자는 ";
 for (int i = 0; i < number_of_input; i++)
 {
 cout<<" "<<space[i];
 }
 float average = 0.0;
 average = (float)Sum(space, number_of_input) / number_of_input;
 cout <<endl<< "입력받은 숫자의 합은=" << Sum(space, number_of_input)<<endl;
 cout << endl << "입력받은 숫자의 평균은은=" <<average<< endl;
 delete(space);
 //동적할당 해제 
 int i = 0;
 cin >> i;
}

2015年11月09日 16:18

Kim Sungeun

댓글 작성은 로그인이 필요합니다.
(注記) 상대에게 상처를 주기보다 서로에게 도움이 될 수 있는 댓글을 달아 주세요.

풀이 작성

(注記) 풀이작성 안내
  • 본문에 코드를 삽입할 경우 에디터 우측 상단의 "코드삽입" 버튼을 이용 해 주세요.
  • 마크다운 문법으로 본문을 작성 해 주세요.
  • 풀이를 읽는 사람들을 위하여 풀이에 대한 설명도 부탁드려요. (아이디어나 사용한 알고리즘 또는 참고한 자료등)
  • 작성한 풀이는 다른 사람(빨간띠 이상)에 의해서 내용이 개선될 수 있습니다.
풀이 작성은 로그인이 필요합니다.
목록으로
코딩도장

코딩도장은 프로그래밍 문제풀이를 통해서 코딩 실력을 수련(Practice)하는 곳입니다.

list x 1

언어별 풀이 현황
전 체 x 238
python x 150
cpp x 15
java x 27
기 타 x 40
cs x 4
objectivec x 1
php x 1
코딩도장 © 2014 · 문의 [email protected]
피드백 · 개인정보취급방침 · RSS

AltStyle によって変換されたページ (->オリジナル) /