Вот. Вопросы есть по си у меня... 8)
1 вопрос. Что неправильно в этой программе:
Код: Выделить всё
/* Laboratory work 2. Variant 7.
Student Vladimir Yarovoy. Group P-44 */
#include <stdio.h>
main() {
int l, k, d, m, t;
printf("Enter k: "); scanf("%d",k);
if ( k<1 || k>366 ) {
printf("Error! Only 366 days in this year...\n");
} else {
l=1; //January 31
if (k>=32) {l++;} //February 29
if (k>=61) {l++;} //March 31
if (k>=91) {l++;} //April 30
if (k>=122) {l++;} //May 31
if (k>=152) {l++;} //June 30
if (k>=183) {l++;} //July 31
if (k>=214) {l++;} //August 31
if (k>=244) {l++;} //September 30
if (k>=275) {l++;} //October 31
if (k>=306) {l++;} //November 30
if (k>=336) {l++;} //December 31
switch(l) {
case 1: printf(" of January"); break;
case 2: printf(" of February"); break;
case 3: printf(" of March"); break;
case 4: printf(" of April"); break;
case 5: printf(" of May"); break;
case 6: printf(" of Juny"); break;
case 7: printf(" of July"); break;
case 8: printf(" of August"); break;
case 9: printf(" of September"); break;
case 10: printf(" of October"); break;
case 11: printf(" of November"); break;
case 12: printf(" of December"); break;
} //switch
} //else
return 0;
} //main
Она должна по-идее по номеру дня в году выдавать месяц. Но что-то не фурычит...
2 вопрос. Мне препод говорит, что для определения месяца в году по номеру дня можно не использовать код, как я написал -
Код: Выделить всё
l=1; //January 31
if (k>=32) {l++;} //February 29
if (k>=61) {l++;} //March 31
if (k>=91) {l++;} //April 30
if (k>=122) {l++;} //May 31
if (k>=152) {l++;} //June 30
if (k>=183) {l++;} //July 31
if (k>=214) {l++;} //August 31
if (k>=244) {l++;} //September 30
if (k>=275) {l++;} //October 31
if (k>=306) {l++;} //November 30
if (k>=336) {l++;} //December 31
Как же это еще можно сделать? Что-то я не догоняю...
3 вопрос. Как в си преобразовывать типы? int -> str, str -> int Если это возможно...
4 вопрос. Например мне надо в массив занести символы латинского алфавита. Как сделать чтобы при попытке ввода чего-то кроме буквы (символ какой-нить или цифра), выдавалась ошибка?
5 вопрос. Что такое итерационный цикл? :lol: так за первый семестр и не смог понять...
ops:
6 вопрос. Что значит
return 0; ? :lol: (в моей программе сверху есть в конце)
7 вопрос. Почему если я уберу этот
return 0; , а вместо
main () сделаю
void main() , в моей программе ничего не меняется? И что такое void это? Почему если
void вставить в скобочки к
main(), тоже ничего не меняется? Почему, если я уберу
return 0; и
void тоже, опять ничего не меняется????? :lol: :lol:
8 вопрос. Как сделать чтоб в конце программа не выключалась, а ждала пока я нажму клавишу какую-нить?
9 вопрос. Есть ли в си аналог двух точек (как в паскале). например для switch() чтоб не для каждого значения сделать, а например для значений от 10 до 100. в паскале я бы написал 10..100, в си как так сделать?
Вот. Вопросы есть по си у меня... 8)
[b]1 вопрос.[/b] Что неправильно в этой программе:[code]/* Laboratory work 2. Variant 7.
Student Vladimir Yarovoy. Group P-44 */
#include <stdio.h>
main() {
int l, k, d, m, t;
printf("Enter k: "); scanf("%d",k);
if ( k<1 || k>366 ) {
printf("Error! Only 366 days in this year...\n");
} else {
l=1; //January 31
if (k>=32) {l++;} //February 29
if (k>=61) {l++;} //March 31
if (k>=91) {l++;} //April 30
if (k>=122) {l++;} //May 31
if (k>=152) {l++;} //June 30
if (k>=183) {l++;} //July 31
if (k>=214) {l++;} //August 31
if (k>=244) {l++;} //September 30
if (k>=275) {l++;} //October 31
if (k>=306) {l++;} //November 30
if (k>=336) {l++;} //December 31
switch(l) {
case 1: printf(" of January"); break;
case 2: printf(" of February"); break;
case 3: printf(" of March"); break;
case 4: printf(" of April"); break;
case 5: printf(" of May"); break;
case 6: printf(" of Juny"); break;
case 7: printf(" of July"); break;
case 8: printf(" of August"); break;
case 9: printf(" of September"); break;
case 10: printf(" of October"); break;
case 11: printf(" of November"); break;
case 12: printf(" of December"); break;
} //switch
} //else
return 0;
} //main[/code]Она должна по-идее по номеру дня в году выдавать месяц. Но что-то не фурычит... :(
[b]2 вопрос.[/b] Мне препод говорит, что для определения месяца в году по номеру дня можно не использовать код, как я написал -[code]l=1; //January 31
if (k>=32) {l++;} //February 29
if (k>=61) {l++;} //March 31
if (k>=91) {l++;} //April 30
if (k>=122) {l++;} //May 31
if (k>=152) {l++;} //June 30
if (k>=183) {l++;} //July 31
if (k>=214) {l++;} //August 31
if (k>=244) {l++;} //September 30
if (k>=275) {l++;} //October 31
if (k>=306) {l++;} //November 30
if (k>=336) {l++;} //December 31[/code]Как же это еще можно сделать? Что-то я не догоняю...
[b]3 вопрос.[/b] Как в си преобразовывать типы? int -> str, str -> int Если это возможно...
[b]4 вопрос.[/b] Например мне надо в массив занести символы латинского алфавита. Как сделать чтобы при попытке ввода чего-то кроме буквы (символ какой-нить или цифра), выдавалась ошибка?
[b]5 вопрос.[/b] Что такое итерационный цикл? :lol: так за первый семестр и не смог понять... :o ops:
[b]6 вопрос.[/b] Что значит [b]return 0;[/b] ? :lol: (в моей программе сверху есть в конце)
[b]7 вопрос.[/b] Почему если я уберу этот [b]return 0;[/b] , а вместо [b]main ()[/b] сделаю [b]void main()[/b] , в моей программе ничего не меняется? И что такое void это? Почему если [b]void[/b] вставить в скобочки к [b]main()[/b], тоже ничего не меняется? Почему, если я уберу [b]return 0;[/b] и [b]void[/b] тоже, опять ничего не меняется????? :lol: :lol:
[b]8 вопрос.[/b] Как сделать чтоб в конце программа не выключалась, а ждала пока я нажму клавишу какую-нить?
[b]9 вопрос.[/b] Есть ли в си аналог двух точек (как в паскале). например для switch() чтоб не для каждого значения сделать, а например для значений от 10 до 100. в паскале я бы написал 10..100, в си как так сделать?