问题描述】依次输入一个整型数组的元素值,然后将该数组前n个元素中的值按逆序重新存放。例如,输入值的顺序为8,6,5,4,1,2,逆序存放后的顺序为2,1,4,5,6,8的顺序存放(注意是逆序存放而不是逆序输出)。
提示:
(1)定义一个数组,数组大小不超过999,为该数组前n个元素赋值。
(2)在循环中,使第0个元素与第n-1个元素交换,第1个元素与第n-2个元素交换,第2个元素与第个n-3元素交换(注意循环次数按n/2确定,n为数据个数)。
(3)输出逆序存放后的各数组元素(使用循环语句)。【输入形式】第一行输入数组的元素个数,第二行输入依次输入元素值,用空格分开
【输出形式】逆序存放后的输入元素,用空格分开
【样例输入】5
12#23#8#76#10
(#表示空格)
【样例输出】10#76#8#23#12
【样例说明】输入中的第一行的5表示对数组的前5个元素进行逆序存放,第二行依次为前5个元素的值;输出结果为逆序存放后数组的前n个元素值。
#include <stdio.h>
#include <string.h>
void swap(int b[],int len)
{
int temp;
int i=0;
for ( i = 0; i < len/2; i++)
{
temp=b[i];
b[i]=b[len-1-i];
b[len-1-i]=temp;
}
i=0;
for ( i = 0; i < len; i++)
{
printf("%d",b[i]);
printf(" ");
}
}
int main()
{
int a[999];
int n;
int i=0;
scanf("%d",&n);
for( i=0;i<n;i++)
{
scanf("%d",&a[i]);
}
swap(a,n);
return 0;
}
【问题描述】
若将某一素数的各位数字的顺序颠倒后得到的数仍是素数,则此素数称为可逆素数。编写一个判断某数是否可逆素数的函数,在主函数中输入一个整数,再调用此函数进行判断
【输入形式】用户在第一行输入一个整数。
【输出形式】程序在下一行输出yes或是no,yes表示此数是可逆素数,no表示不是。用户输入的数必须为正整数。注意:yes或是no全是小写输出。
【样例输入】
#include <stdio.h>
#include <string.h>
int isP(int b)
{
int c;
for(c=2;c<b/2+1;c++)
{
if(b%c==0)
{
return 0;
}
}
return 1;
}
void sawp(int c)
{
int i,nc=0;
while(c!=0)
{
i=c%10;
c=c/10;
nc=nc*10+i;
}
if(isP(nc))
{ printf("yes");}
else
{printf("no");}
}
int main(){
int a;
scanf("%d",&a);
if(!isP(a))
{
printf("no");
}
else{sawp(a);}
return 0;
}
【问题描述】字符串逆序:设计函数功能是将一个字符串逆序,函数声明:void stringNx(char *a) 使用这个函数完成将输入的字符串逆序输出
【输入形式】要求输入一个字符串
【输出形式】逆序后输出
【样例输入】abcd
【样例输出】dcba
#include <stdio.h>
#include <string.h>
void stringNx(char *a)
{
int len=strlen(a);
int i;
for ( i = len-1; i >=0; i--)
{
printf("%c",a[i]);
}
}
int main()
{
char a[100];
scanf("%s",a);//字符串不用取地址哦
stringNx(a);
return 0;
}
【问题描述】
两个集合的差集定义如下:
集合A、B的差集,由所有属于A但不属于B的元素构成。
输入两个集合A、B,每个集合中元素都是自然数。求集合A、B的差集。
【输入形式】
从标准输入接收集合中的自然数元素,以空格分隔。-1表示输入结束。
其中,每个集合都不输入重复的元素。
【输出形式】
输出差运算后集合中的元素,以空格分隔。输出元素的顺序与原有集合A输入的顺序一致。
如果A、B的差集为空集,则不输出任何数值。
#include <stdio.h>
#include <string.h>
void less(int r[],int d[],int lr,int ld)
{
int i,j;
int Less;
for ( i = 0; i < lr; i++)
{
for (j = 0; j < ld; j++)
{
if(d[j]==r[i])
{
r[i]=-1;
}
}
}
for(i=0;i<lr;i++)
{
if (r[i]!=-1)
{
printf("%d",r[i]);
printf(" ");
}
}
}
int main()
{
int lr=0, ld=0;
int c=0,i=0;
int a[10],b[10];
while(scanf("%d",&c)!=EOF)
{
if (c==-1)
{
break;
}
a[i++]=c;
lr++;
}
i=0;
while(scanf("%d",&c)!=EOF)
{
if (c==-1)
{
break;
}
b[i++]=c;ld++;
}
less(a,b,lr,ld);
return 0;
}
【问题描述】Fibonacci数列:无穷数列1,1,2,3,5,8,13,21,34,55,…, 被称为Fibonacci数列。求第n个Fibonacci数。
【输入形式】输入数字n
【输出形式】输出第n个Fibonacci数
#include <stdio.h>
#include <string.h>
void Fibonacci(int b)
{
int i;
int s[b];
s[1]=1;s[0]=1;
for( i = 2; i < b; i++)
{
s[i]=s[i-1]+s[i-2];
}
printf("%d",s[b-1]);
}
int main()
{
int a;
scanf("%d",&a);
Fibonacci(a);
return 0;
}
【问题描述】输入一个字符串,将这个字符串中的大写英文字母