Уважаемые помгите пожалуйста отредактировать код чтобы выдавал нужный результат
Код:
#include <conio.h>
#include <stdio.h>
int main() // ПОДРОБНЫЙ ВАРИАНТ ЗАПИСИ ПРОГРАММЫ
{
int i,j; /* Счетчики */
char c='A'; /* Переменная для хранения значения первого символа
в строке */
// Цикл по строкам
for (i=1; i<=5; i++)
{ /* Начало действий внутри цикла по строкам */
/**** I) Печать строки символов */
for (j=1; j<=5; j++)
{ /* Начало тела цикла печати строки */
if (c>'I') c='A'; /*** 1) Проверка значения символа */
printf ("%2c",c); /*** 2) Вывод символа на экран */
c++; /*** 3) Новое значение символа */
} /* Конец тела цикла печати строки */
/**** II) Переход на следующую строку */
printf ("n");
/**** III) Подготовка первого символа следующей строки */
c--;
} /* Конец действий внутри цикла по строкам */
getch();
return 0;
}
#include <stdio.h>
int main() // ПОДРОБНЫЙ ВАРИАНТ ЗАПИСИ ПРОГРАММЫ
{
int i,j; /* Счетчики */
char c='A'; /* Переменная для хранения значения первого символа
в строке */
// Цикл по строкам
for (i=1; i<=5; i++)
{ /* Начало действий внутри цикла по строкам */
/**** I) Печать строки символов */
for (j=1; j<=5; j++)
{ /* Начало тела цикла печати строки */
if (c>'I') c='A'; /*** 1) Проверка значения символа */
printf ("%2c",c); /*** 2) Вывод символа на экран */
c++; /*** 3) Новое значение символа */
} /* Конец тела цикла печати строки */
/**** II) Переход на следующую строку */
printf ("n");
/**** III) Подготовка первого символа следующей строки */
c--;
} /* Конец действий внутри цикла по строкам */
getch();
return 0;
}
A B C D E
E A C D E
E D A D E
E D C A E
E D C B A
1 0 4
2 1 3
3 2 2
4 3 2
5 4 0
N+'A'+j-1
1+'A'='B'
Вот задумка может кто поможет реализовать
Код:
#include <iostream>
#include <stdlib.h>
int main(int argc, char** argv) {
const int N = 5;
int k = 0;
char arr[N] = {'A','B','C','D','E'};
for(int i=0;i<N;i++){
for(int j=0;j<N;j++){
if(j < i) k = (j == 0) ? N - 1 : N - 1 - j;
else
if(j > i) k = j;
else
if(j == i) k = 0;
std::cout << arr[k];
}
std::cout << std::endl;
}
system("pause");
return 0;
}
#include <stdlib.h>
int main(int argc, char** argv) {
const int N = 5;
int k = 0;
char arr[N] = {'A','B','C','D','E'};
for(int i=0;i<N;i++){
for(int j=0;j<N;j++){
if(j < i) k = (j == 0) ? N - 1 : N - 1 - j;
else
if(j > i) k = j;
else
if(j == i) k = 0;
std::cout << arr[k];
}
std::cout << std::endl;
}
system("pause");
return 0;
}
Код:
#include <iostream>
#include <stdlib.h>
int main(int argc, char** argv) {
int N = 5;
char a = 'A';
for(int i=0;i<N;i++){
for(int j=0;j<N;j++){
if(j < i)
a = (j == 0) ? 'A' + N - 1 : 'A' + N - 1 - j;
else
if(j > i) a = 'A' + j;
else
if(j == i) a = 'A';
std::cout << a;
}
std::cout << std::endl;
}
system("pause");
return 0;
}
#include <stdlib.h>
int main(int argc, char** argv) {
int N = 5;
char a = 'A';
for(int i=0;i<N;i++){
for(int j=0;j<N;j++){
if(j < i)
a = (j == 0) ? 'A' + N - 1 : 'A' + N - 1 - j;
else
if(j > i) a = 'A' + j;
else
if(j == i) a = 'A';
std::cout << a;
}
std::cout << std::endl;
}
system("pause");
return 0;
}
Код:
#include <iostream>
#include <stdlib.h>
int main(int argc, char** argv) {
int N = 5;
for(int i=0;i<N;i++){
for(int j=0;j<N;j++){
char a = (j == i) ? 'A' :
(j > i) ? 'A' + j :
(j < i &&
j == 0) ? 'A' + N - 1 :
'A' + N - 1 - j;
std::cout << a;
}
std::cout << std::endl;
}
system("pause");
return 0;
}
#include <stdlib.h>
int main(int argc, char** argv) {
int N = 5;
for(int i=0;i<N;i++){
for(int j=0;j<N;j++){
char a = (j == i) ? 'A' :
(j > i) ? 'A' + j :
(j < i &&
j == 0) ? 'A' + N - 1 :
'A' + N - 1 - j;
std::cout << a;
}
std::cout << std::endl;
}
system("pause");
return 0;
}
Код:
#include <iostream>
#include <stdlib.h>
int main(int argc, char** argv) {
int N = 5;
char b = 'A';
for(int i=0;i<N;i++){
for(int j=0;j<N;j++){
char a = b;
a += (j == i) ? 0 :
(j > i) ? j :
(j == 0) ? N - 1 :
N - 1 - j;
std::cout << a;
}
std::cout << std::endl;
}
system("pause");
return 0;
}
#include <stdlib.h>
int main(int argc, char** argv) {
int N = 5;
char b = 'A';
for(int i=0;i<N;i++){
for(int j=0;j<N;j++){
char a = b;
a += (j == i) ? 0 :
(j > i) ? j :
(j == 0) ? N - 1 :
N - 1 - j;
std::cout << a;
}
std::cout << std::endl;
}
system("pause");
return 0;
}
Код:
#include <iostream>
#pragma warning(disable : 4996)
void PrintUsage(char* appName)
{
std::cout << "Usage: " << appName << " [characters]n";
system("pause");
}
int main(int argc, char** argv) {
char* src; // The source array.
int len; // The length of the source.
bool bCancel = false;
// Parsing input arguments.
switch (argc)
{
case 2:
len = (int)strlen(argv[1]);
src = new char[len + 1];
strcpy(src, argv[1]);
break;
default:
std::cout << "Incorrect arguments!n";
PrintUsage(argv[0]);
return 0;
}
int frame_step = 1; // The frame border speed (also uses to define a direction).
int frame_border_pos = 0; // The position of the frame border.
int pos_after; // The position in source array which goes right after the frame.
int pos_before; // The current position in source from which the next frame starts.
int border1 = 0; // The first element of the current frame
int border2 = len - 1; // The last element of the current frame
while (!bCancel)
{
// The character of the current frame border.
char frame_char = src[frame_border_pos];
while ((frame_border_pos * frame_step) <= border2)
{
pos_before = border2;
pos_after = frame_border_pos + frame_step;
for (int i = border1; i != frame_border_pos; i += frame_step)
{
std::cout << src[pos_before];
pos_before -= frame_step;
}
std::cout << frame_char;
for (int j = frame_border_pos; j != border2; j += frame_step)
{
std::cout << src[pos_after];
pos_after += frame_step;
}
std::cout << std::endl;
frame_border_pos += frame_step;
}
// Run the opposite direction and swap borders of the frame.
frame_step *= -1;
frame_border_pos += frame_step;
std::swap<int>(border1, border2);
// Interactive part.
std::cout << "Continue? <y/n> ";
char answer = std::cin.get();
std::cin.ignore();
if (answer != 'y' && answer != 'Y')
{
bCancel = true;
}
}
delete[] src;
system("pause");
return 0;
}
#pragma warning(disable : 4996)
void PrintUsage(char* appName)
{
std::cout << "Usage: " << appName << " [characters]n";
system("pause");
}
int main(int argc, char** argv) {
char* src; // The source array.
int len; // The length of the source.
bool bCancel = false;
// Parsing input arguments.
switch (argc)
{
case 2:
len = (int)strlen(argv[1]);
src = new char[len + 1];
strcpy(src, argv[1]);
break;
default:
std::cout << "Incorrect arguments!n";
PrintUsage(argv[0]);
return 0;
}
int frame_step = 1; // The frame border speed (also uses to define a direction).
int frame_border_pos = 0; // The position of the frame border.
int pos_after; // The position in source array which goes right after the frame.
int pos_before; // The current position in source from which the next frame starts.
int border1 = 0; // The first element of the current frame
int border2 = len - 1; // The last element of the current frame
while (!bCancel)
{
// The character of the current frame border.
char frame_char = src[frame_border_pos];
while ((frame_border_pos * frame_step) <= border2)
{
pos_before = border2;
pos_after = frame_border_pos + frame_step;
for (int i = border1; i != frame_border_pos; i += frame_step)
{
std::cout << src[pos_before];
pos_before -= frame_step;
}
std::cout << frame_char;
for (int j = frame_border_pos; j != border2; j += frame_step)
{
std::cout << src[pos_after];
pos_after += frame_step;
}
std::cout << std::endl;
frame_border_pos += frame_step;
}
// Run the opposite direction and swap borders of the frame.
frame_step *= -1;
frame_border_pos += frame_step;
std::swap<int>(border1, border2);
// Interactive part.
std::cout << "Continue? <y/n> ";
char answer = std::cin.get();
std::cin.ignore();
if (answer != 'y' && answer != 'Y')
{
bCancel = true;
}
}
delete[] src;
system("pause");
return 0;
}
Огромное спасибо за предложенные варианты, но мне нужно сделать при помощи оператора цикла for (без применения массивов и прямой адресации курсора).
Код:
#include <stdio.h>
#include <conio.h>
char First; /* Первый символ в строке */
char C; /* Текущий символ в строке */
int main()
{
First='K'; /* Первый символ в первой строке */
while (First>='C')
{
/* Печать первой части строки символов */
C=First;
while (C<='I')
{
printf("%2c",C); // Печать очередного символа
C+=2; // Вычисление следующего значения
}
/* Печать второй части строки символов */
C='A';
while (C<First)
{
printf("%2c",C); // Печать символа
C+=2; // Вычисление следующего значения
}
/* Переход на другую строку */
printf("n");
/* Вычисление значения первого символа */
First-=2;
}
getch();
return 0;
}
#include <conio.h>
char First; /* Первый символ в строке */
char C; /* Текущий символ в строке */
int main()
{
First='K'; /* Первый символ в первой строке */
while (First>='C')
{
/* Печать первой части строки символов */
C=First;
while (C<='I')
{
printf("%2c",C); // Печать очередного символа
C+=2; // Вычисление следующего значения
}
/* Печать второй части строки символов */
C='A';
while (C<First)
{
printf("%2c",C); // Печать символа
C+=2; // Вычисление следующего значения
}
/* Переход на другую строку */
printf("n");
/* Вычисление значения первого символа */
First-=2;
}
getch();
return 0;
}
Цитата: Guy
Огромное спасибо за предложенные варианты, но мне нужно сделать при помощи оператора цикла for (без применения массивов и прямой адресации курсора).
Извините что сразу не уточнил...