Перевод кода из Pascal - C (СИ)
Формулировка задачи:
program er;
var n,i:longint;
function polin(n:longint):boolean;
var i,j:longint;
s:string;
itog:boolean;
begin
itog:=true;
str(n,s);
if length(s)=1 then itog:=false;
for i:=1 to length(s) do begin
j:=length(s)-i+1;
if s[i]<>s[j] then itog:=false; end;
polin:=itog;
end;
BEGIN
write('Введите N');
readln(n);
writeln('Эти числа: ');
for i:=1 to n do
if polin(i*i) then
writeln(i,' (',i*i,')');
readln;
END.Решение задачи: «Перевод кода из Pascal»
textual
Листинг программы
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<conio.h>
int polin(int n)
{
int i,j;
char s[255];
int itog;
itog=1;
itoa(n,s,10);
if(strlen(s)==1) itog=0;
for(i=0;i<strlen(s);i++)
{
j=strlen(s)-i;
if(s[i]!=s[j]) itog=0;
}
return itog;
}
int main(void)
{
int n,i;
printf("%s\n","Enter N");
scanf("%d",&n);
printf("%s\n","The numbers are:");
for(i=1;i<n+1;i++)
{
if(polin(i*i)==1) printf("%d%s%d%s\n",i," (",i*i,")");
}
getch();
return 0;
}
Объяснение кода листинга программы
- Объявление функций:
- int polin(int n);
- int main(void);
- Ввод числа n с клавиатуры:
- scanf(
%d,&n);
- scanf(
- Вывод приглашения для ввода чисел:
- printf(
%s\n,Enter N);
- printf(
- Вывод сообщения
The numbers are::- printf(
%s\n,The numbers are:);
- printf(
- Цикл вывода квадратов чисел от 1 до n:
- for(i=1;i<n+1;i++)
- Проверка числа на простоту с помощью функции polin:
- if(polin(i*i)==1)
- Вывод числа i и его квадрата:
- printf(
%d%s%d%s\n,i,(,i*i,));
- printf(
- Получение числа n для выхода из программы:
- getch();
- Возврат 0 для завершения программы:
- return 0;