int a[10];
int tmp;
...
for (i = 0; i < 10; i++)
{
tmp = a;
a = a[9 - i];
a[9 - i] = tmp;
}
...
Очень срочно нужен алгоритм(желательно на С).
Здраствуйте, помогите пожалуста, очень срочно нужен алгоритм(желательно на языке С), который меняет местами первый и последний, второй и предпоследний и т.д. элементы в символьной строке(можно в массиве).
Код:
Только не до 10, а до 5.
#include<stdio.h>
#include<conio.h>
#include<string.h>
#include<ctype.h>
void swap(char *s,int p1, int p2)
{
char c=s[p1];
s[p1]=s[p2];
s[p2]=c;
}
void swaper(char *s,int d)
{
int j,len=strlen(s);
for(j=0;j<d;j++)
for(int i=0,k=len-1;i<k;i++,k--)
if(!isalpha(s[j])&&!isalpha(s[j][k]))
swap(s[j],i,k);
}
void main()
{
char s[10][81];
int i,d;
clrscr();
puts("Введите количество строк:");
gets(d);
for(i=0;i<d;i++)
{
puts("Введите %d строку:",i);
gets(s);
}
swaper(s[][81],d);
for(i=0;i<d;i++)
printf("%s\n",s);
getch();
}
Код:
#include<stdio.h>
#include<conio.h>
#include<string.h>
#include<ctype.h>
void swap(char s[][81],int p1, int p2,int num)
{
char c=s[num][p1];
s[num][p1]=s[num][p2];
s[num][p2]=c;
}
void swaper(char s[][81],int d)
{
int j,k,i;
for(j=0;j<d;j++)
for(i=0,k=strlen(s[j])-1;i<k;i++,k--)
[COLOR="Red"]if( (isalpha((int)s[j]) )&&( isalpha((int)s[j][k]) ) )[/COLOR]
swap(s,i,k,j);
}
void main()
{
clrscr();
char s[10][81];
int i,d;
printf("num strok ");
scanf("%d",&d);
for(i=0;i<d;i++)
{
printf("stroka %d:",i+1);
scanf("%s",s);
}
swaper(s,d);
for(i=0;i<d;i++)
printf("%s\n",s);
getch();
}
#include<conio.h>
#include<string.h>
#include<ctype.h>
void swap(char s[][81],int p1, int p2,int num)
{
char c=s[num][p1];
s[num][p1]=s[num][p2];
s[num][p2]=c;
}
void swaper(char s[][81],int d)
{
int j,k,i;
for(j=0;j<d;j++)
for(i=0,k=strlen(s[j])-1;i<k;i++,k--)
[COLOR="Red"]if( (isalpha((int)s[j]) )&&( isalpha((int)s[j][k]) ) )[/COLOR]
swap(s,i,k,j);
}
void main()
{
clrscr();
char s[10][81];
int i,d;
printf("num strok ");
scanf("%d",&d);
for(i=0;i<d;i++)
{
printf("stroka %d:",i+1);
scanf("%s",s);
}
swaper(s,d);
for(i=0;i<d;i++)
printf("%s\n",s);
getch();
}
если это символьная строка, зачем проверять на букву? я бы убрал полностью условие
*кстате нет проверки на значения величины строки (81), ничо не препятствует переполнению стека
всё равно не работает
код с++ с синтаксисом си (объявления где попало)