387 / 294 / 21
Регистрация: 07.08.2011
Сообщений: 790
Записей в блоге: 1
1

Подскажите, пожалуйста, верно ли решение.

20.08.2011, 01:03. Показов 1631. Ответов 16
Метки нет (Все метки)

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#include <iostream>
 
using namespace std;
 
int main ()
{
cout << "What is your first name? ";
char *first = new char[20];
cin.get(first,20); 
cin.get();
cout << "What is your last name? ";
char *last = new char[20];
cin.get(last,20);
cin.get();
cout << "What letter grade do you deserve? ";
 
 
char piz; //Очень сомневаюсь в правильности здесь
int pizint;
cin >> piz;
pizint=piz;
pizint = pizint+1;
piz=pizint;
 
 
cout << "What is your age? ";
int *age = new int;
cin >> *age;
 
cout << "Name: " << first << " " << last << endl;
cout << "Grade:" << piz << endl << "Age: " << *age; 
 
 delete [] first;
 delete [] last;
 delete age;
 
 
    cout << endl;
    system("PAUSE");
    return 0;
}
Миниатюры
Подскажите, пожалуйста, верно ли решение.  
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
20.08.2011, 01:03
Ответы с готовыми решениями:

Подскажите пожалуйста решение задачи.
Найти точку D, симметричную точку A относительно стороны BC.

Все ли верно? И еще подскажите, пожалуйста, php
Здравствуйте. Есть скрипт, посылающий post запросы и пишущий в txt по ходу выполнения записи, в...

Срочно подскажите пожалуйста <taglib> в web.xml как верно реализовать
Срочно подскажите пожалуйста &lt;taglib&gt; в web.xml как верно реализовать под сервер SUN J2EE 1.3.1...

Ввести натуральное число и определить, верно ли, что сумма его цифр равна 10. Подскажите пожалуйста:)
Ввести натуральное число и определить, верно ли, что сумма его цифр равна 10

16
Эксперт С++
2361 / 1649 / 275
Регистрация: 29.05.2011
Сообщений: 3,378
20.08.2011, 01:47 2
Цитата Сообщение от KeyGen Посмотреть сообщение
C++
1
2
3
pizint=piz;
pizint = pizint+1;
piz=pizint;
Такие сложности ни к чему, достаточно просто увеличить piz на единицу. Так
C++
1
piz += 1;
или так
C++
1
++piz;
или ещё как-нибудь

Переменную age можно конечно и динамически создавать, как в этой программе, но зачем?
Да и массивы для строк, раз уж они небольшие и с константным размером, вполне можно было сделать автоматическими. Но это я так...
1
27 / 27 / 1
Регистрация: 21.06.2011
Сообщений: 82
20.08.2011, 02:45 3
Я бы что-то в эдаком роде наваял бы:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#include <iostream>
#include <string>
 
using namespace std;
 
int main ()
{
cout << "What is your first name? ";
string first;
cin >> first; 
cout << "What is your last name? ";
string last;
cin >> last;
cout << "What letter grade do you deserve? ";
 
 
string piz; 
 
cin >> piz;
// Cделать обработку случая, когда ввели что-то отличное от одной буквы. 
int pizint = int (piz[0]);
piz[0]=char(++pizint);
 
 
cout << "What is your age? ";
string age;
cin >> age;
// Сделать обработку  случая когда ввели не натуральное число. 
cout << "Name: " << first << " " << last << endl;
cout << "Grade: " << piz << endl << "Age: " << age << endl; 
    system("PAUSE");
    return 0;
}
0
Эксперт С++
2361 / 1649 / 275
Регистрация: 29.05.2011
Сообщений: 3,378
20.08.2011, 02:48 4
Цитата Сообщение от germeticus Посмотреть сообщение
C++
1
2
string first;
cin >> first;
С пробелами неувязочка (см. задание).
1
27 / 27 / 1
Регистрация: 21.06.2011
Сообщений: 82
20.08.2011, 03:10 5
Цитата Сообщение от grizlik78 Посмотреть сообщение
С пробелами неувязочка (см. задание).
Ага, спасибо, вот его я и не посмотрел.

Тогда так, хотя конечно эстетичность кода несколько нарушена:
C++
1
2
3
4
5
6
7
cout << "What is your first name? ";
string first;
getline(cin, first);
 
cout << "What is your last name? ";
string last;
getline(cin, last);
1
Заблокирован
Автор FAQ
20.08.2011, 11:30 6
Цитата Сообщение от KeyGen Посмотреть сообщение
char piz; //Очень сомневаюсь в правильности здесь
int pizint;
cin >> piz;
pizint=piz;
pizint = pizint+1;
piz=pizint;
Всё нормально здесь, ты вводишь char а в pizint получишь числовое значение введенного тобой символа по ASCII. к примеру ты вёл '0' - код нуля если не изменяет память 48, тогда
piz = '0';
pizint = 48;
pizint = pizint+1;//тут можно pizint++;
получаем pizint = 49;
piz = pizint;//всё равно что piz = (char)49;(char)49 == '1';
В итоге при выводе piz отобразиться '1'

Цитата Сообщение от KeyGen Посмотреть сообщение
int *age = new int;
cin >> *age;
- так нельзя, либо пиши int age либо int *age = new int[1];
в первом случае будешь работать с числом, во втором с массивом из 1-го элемента, задание сейчас реализую в своём видении (причём ввод нескольких слов стркоу лучше выполнять scanf - ом)
1
Эксперт С++
2361 / 1649 / 275
Регистрация: 29.05.2011
Сообщений: 3,378
20.08.2011, 11:46 7
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
так нельзя
Запрещаешь? С чего бы вдруг? Ну неэффективно, ну коряво, но почему нельзя?
0
Заблокирован
Автор FAQ
20.08.2011, 12:17 8
Вот мой вариант решения
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <stdio.h>
#include <conio.h>
 
int main()
{
    int age;
    char first[32] = {0}, last[32] = {0}, grade;
    printf("What is your first name? ");
    scanf("%[^\n]%c",first,&grade);
    printf("What is your last name? ");
    scanf("%[^\n]%c",last,&grade);
    printf("What letter grade do you deserve? ");
    scanf("%c",&grade);
    printf("What is your age? ");
    scanf("%d",&age);
 
    printf("Name : %s, %s\r\n",last,first);
    printf("Grade: %c\r\n",(grade + 1));
    printf("Age  : %d\r\n",age);
    printf("Press any key to continue\r\n");
    getch();
    return 0;
}
[Результат работы программы]
What is your first name? Betty Sue
What is your last name? Yew
What letter grade do you deserve? B
What is your age? 22
Name : Yew, Betty Sue
Grade: C
Age : 22
Press any key to continue


Добавлено через 11 минут
Цитата Сообщение от grizlik78 Посмотреть сообщение
Запрещаешь? С чего бы вдруг?
- ты сам ответил
Цитата Сообщение от grizlik78 Посмотреть сообщение
Ну неэффективно, ну коряво
1
Эксперт С++
2361 / 1649 / 275
Регистрация: 29.05.2011
Сообщений: 3,378
20.08.2011, 12:20 9
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
ты сам ответил
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
либо int *age = new int[1];
Можено подумать, что
C++
1
int *age = new int[1];
Хоть чуточку эффективнее или менее коряво.
Не стоит и нельзя — совсем не одно и то же.
1
27 / 27 / 1
Регистрация: 21.06.2011
Сообщений: 82
20.08.2011, 13:16 10
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
- так нельзя, либо пиши int age либо int *age = new int[1];
в первом случае будешь работать с числом, во втором с массивом из 1-го элемента,
Очень даже нужно. Посмотрите хоть в Липпмане. Мы либо динамически выделяем память под переменную, либо под массив.

int *A = new int;
string *A = new string;

И все в таком духе.
1
387 / 294 / 21
Регистрация: 07.08.2011
Сообщений: 790
Записей в блоге: 1
20.08.2011, 16:15  [ТС] 11
А можно ли это:
C++
1
2
3
4
5
6
...
cout << "What letter grade do you deserve? ";
char piz;
cin >> piz;
++piz;
...
Оформить enum-ом или массивом чтобы при вводе "C" выводилась "A" или без if не обойтись.
0
27 / 27 / 1
Регистрация: 21.06.2011
Сообщений: 82
20.08.2011, 18:56 12
Чтобы буквы менялись циклически? Тогда if пожалуй.
0
Заблокирован
Автор FAQ
20.08.2011, 19:24 13
Цитата Сообщение от KeyGen Посмотреть сообщение
Оформить enum-ом или массивом чтобы при вводе "C" выводилась "A" или без if не обойтись.
- можно switch использовать
0
Заблокирован
Автор FAQ
20.08.2011, 19:33 14
Вот "адская смесь" enum и switch
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
#include <stdio.h>
#include <conio.h>
 
enum GRADE {A = 'B',B,C,D,E,F = 'A'} GRADE;
 
int main()
{
    int age;
    char first[32] = {0}, last[32] = {0}, grade;
    printf("What is your first name? ");
    scanf("%[^\n]%c",first,&grade);
    printf("What is your last name? ");
    scanf("%[^\n]%c",last,&grade);
    printf("What letter grade do you deserve? ");
    scanf("%c",&grade);
    printf("What is your age? ");
    scanf("%d",&age);
 
    printf("Name : %s, %s\r\n",last,first);
//  printf("Grade: %c\r\n",(grade + 1));
    enum GRADE pGRADE;
    switch(grade){
    case 'A':
        pGRADE = A;
        break;
    case 'B':
        pGRADE = B;
        break;
    case 'C':
        pGRADE = D;
        break;
    case 'D':
        pGRADE = D;
        break;
    case 'E':
        pGRADE = E;
        break;
    case 'F':
        pGRADE = F;
        break;
    }
    printf("Grade: %c\r\n",pGRADE);
    printf("Age  : %d\r\n",age);
    printf("Press any key to continue\r\n");
    getch();
    return 0;
}
Миниатюры
Подскажите, пожалуйста, верно ли решение.  
0
Заблокирован
Автор FAQ
20.08.2011, 19:36 15
Но лично мне по душе такая реализация
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
#include <stdio.h>
#include <conio.h>
 
int main()
{
    int age;
    char first[32] = {0}, last[32] = {0}, grade;
    printf("What is your first name? ");
    scanf("%[^\n]%c",first,&grade);
    printf("What is your last name? ");
    scanf("%[^\n]%c",last,&grade);
    printf("What letter grade do you deserve? ");
    scanf("%c",&grade);
    printf("What is your age? ");
    scanf("%d",&age);
 
    printf("Name : %s, %s\r\n",last,first);
    switch(grade){
    case 'A':
        grade = 'B';
        break;
    case 'B':
        grade = 'C';
        break;
    case 'C':
        grade = 'D';
        break;
    case 'D':
        grade = 'E';
        break;
    case 'E':
        grade = 'F';
        break;
    default:
        grade = 'A';
        break;
    
    }
    printf("Grade: %c\r\n",grade);
    printf("Age  : %d\r\n",age);
    printf("Press any key to continue\r\n");
    getch();
    return 0;
}
Результат работы тот же, что и в примерах выше
1
Эксперт С++
2361 / 1649 / 275
Регистрация: 29.05.2011
Сообщений: 3,378
20.08.2011, 21:01 16
Цитата Сообщение от KeyGen Посмотреть сообщение
Оформить enum-ом или массивом чтобы при вводе "C" выводилась "A" или без if не обойтись.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
#include <cctype>
 
using namespace std;
 
int main()
{
    cout << "What letter grade do you deserve? ";
    char piz;
    cin >> piz;
    char const *grades = "ACBA";
 
    int idx = 1;
    while (grades[idx] && grades[idx] != toupper(piz))
        ++idx;
 
    cout << grades[idx - 1] << endl;
 
    return 0;
}
1
27 / 27 / 1
Регистрация: 21.06.2011
Сообщений: 82
20.08.2011, 21:09 17
Гм...

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <stdio.h>
#include <conio.h>
  
int main()
{
        int age;
        char first[32] = {0}, last[32] = {0}, grade;
        printf("What is your first name? ");
        scanf("%[^\n]%c",first,&grade);
        printf("What is your last name? ");
        scanf("%[^\n]%c",last,&grade);
        printf("What letter grade do you deserve? ");
        scanf("%c",&grade);
        printf("What is your age? ");
        scanf("%d",&age);
        printf("Name : %s, %s\r\n",last,first);
        if (grade == 'F') grade = 'A' -1   ;
        printf("Grade: %c\r\n", ++grade);
        printf("Age  : %d\r\n",age);
        printf("Press any key to continue\r\n");
        getch();
        return 0;
}
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
20.08.2011, 21:09

Подскажите решение пожалуйста
Здраствуйте. Можно ли удалять значение с таблицы автоматом при наборе определенного значение,...

Пожалуйста, подскажите решение интеграла
Пожалуйста, подскажите решение интеграла \int ({2}^{x}/\sqrt{5-{4}^{x}}) dx Буду очень благодарна)

Подскажите решение пожалуйста, интерполяция и аппроксимация
1.По 11 измерениям входного и выходного сигналов статической системы, осуществить интерполяцию...

Подскажите с сетью, пожалуйста! Подозреваю, решение простое)
Здравствуйте! Тем много прочитала, но наша ситуация видится много проще описанных. Офис в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.