题目:
1、定义一个一维数组 int a= [1,2,3,4,5,6,7,8]
(1) 求一维数组的长度
(2) 并将所有奇数下标元素自乘 3,偶数下标元素自增 2.
输出变化后的数组
2、定义一个整形数组,容量5,终端输入五个数存在数组中,然后在到终端输入一个数a,判断a是否存在于我的这个数组,存在打印存在,不存在打印不存在,并计数。
3、整形数组逆置,用指针实现。
4、求[3,100]中的质数
5、删除字符串中的重复字符,只使用一个数组,尝试用指针实现。
代码:
#include<stdio.h>
#include<string.h>
int main(int argc, const char *argv[])
{
/*****题目一******/
#if 0
int a[]={1,2,3,4,5,6,7,8};
int len=sizeof(a)/sizeof(a[0]);
for(int i=0;i<len;i++)
{
if(i%2)a[i]=a[i]*3;
else a[i]=a[i]+2;
}
printf("长度为:%d",len);
printf("\n");
for(int i=0;i<len;i++)printf("%d ",a[i]);
printf("\n");
#endif
/*****题目二******/
#if 0
int a[5];
int n,k=0;
printf("请输入5个数:");
for(int i=0;i<5;i++)scanf("%d",&a[i]);
printf("查找:");
scanf("%d",&n);
for(int i=0;i<5;i++)
{
if(a[i]==n)k++;
}
if(k==0)printf("%d不存在\n",n);
else printf("%d存在,有%d个",n,k);
#endif
/*****题目三******/
#if 0
int a[5]={1,2,3,4,5};
int *p=a;
int temp;
for(int i=0;i<5;i++)printf("%d ",a[i]);
printf("\n");
for(int i=0;i<(5/2);i++)
{
temp=*(p+i);
*(p+i)=*(p+(4-i));
*(p+(4-i))=temp;
}
for(int j=0;j<5;j++)printf("%d ",a[j]);
#endif
/*****题目四******/
#if 0
for(int i=3;i<=100;i++)
{
for(int j=2;j<i;j++)
{
if(i%j==0)break;
if(j==i-1)printf("%d是质数\n",i);
}
}
#endif
/*****题目五******/
#if 0
char a[32];
char *p1=a;
char *p2=NULL;
char *temp=NULL;
printf("请输入一组字符串:");
gets(a);
while(*p1)
{
p2=p1;
while(*p2++)
{
if(*p1==*p2)
{
temp=p2;
while(*p2)
{
*p2=*(p2+1);
p2++;
}
p2=temp-1;
}
}
p1++;
}
puts(a);
#endif
return 0;
}
运行结果:
结果一:
ubuntu@ubuntu:~$ ./day5
长度为:8
3 6 5 12 7 18 9 24
结果二:
ubuntu@ubuntu:~$ ./day5
请输入5个数:1 2 3 4 5
查找:6
6不存在
ubuntu@ubuntu:~$ ./day5
请输入5个数:11 33 11 2 11
查找:11
11存在,有3个
ubuntu@ubuntu:~$
结果三:
ubuntu@ubuntu:~$ ./day5
1 2 3 4 5
5 4 3 2 1
ubuntu@ubuntu:~$
结果四:
ubuntu@ubuntu:~$ ./day5
3是质数
5是质数
7是质数
11是质数
13是质数
17是质数
19是质数
23是质数
29是质数
31是质数
37是质数
41是质数
43是质数
47是质数
53是质数
59是质数
61是质数
67是质数
71是质数
73是质数
79是质数
83是质数
89是质数
97是质数
结果五:
ubuntu@ubuntu:~$ ./day5
请输入一组字符串:qwwwyuuuinafbfhik
qwyuinafbhk