几道C语言编程题

1 编程序 将一维数组中元素向右循环移N次。要求用下标法和指针法两种方法实现
例如 元素为0,1,2,3,4,5,6,7,8,9,10位移3次后变成8,9,10,0,1,2,3,4,5,6,7。

2 用scanf()函数输入20个数存入一个数组中,以每行5个数打印输出,并打印输出其中偶数的和(用数组和指针两种方法)

3 有15个数存入一个数组,输入一个数,找出该数是数组中的元素的第几个元素的值。如果不存在,输出“无次数”。要求用赋值法的方法给定义的数组赋值,要找的数用scanf()函数输入。(用数组和指针两种方法)

4 设数组a共有11个元素,前10元素由小到大顺序排列,最后一个元素未赋值,现将任意数x插入数组a中,插入后数组仍然有序。要求用赋值法给定义的数组前10个元素赋值,要求插入的数用scanf()函数输入。(用数组和指针两种方法)
提示 把一个数插入到有序列中去的算法思想;
(1)首先确定x插在数组中的位置P;(可由以下语句实现)
p=0;
while(x>a[p]and p<n)
p=p+1;
(2) a[p]-a[n]元素向后顺移一个位置以空出啊(p)元素放入x。(可由以下语句实现)
for(i=n-2;i>=p-1;i--)
a[i+1]=a[i];
a[p]=x;

差不多都编出来了 可总是有几个地方错误 又不知道怎么改 高手帮忙编写下 借小弟参考参考 好的有追分
能给几道就几道吧 谢谢

多给些分吧,累死我了:(
给,都已经编译运行确认了:
1.
下标法:
#include<conio.h>
#include<stdio.h>

int main()
{
int a[11]={0,1,2,3,4,5,6,7,8,9,10};
int N;
int i,j,temp;

printf("Please input N: \n");
scanf("%d",&N);

for(i=0;i<N;i++)
{
temp=a[10];
for(j=10;j>=1;j--)
{
a[j]=a[j-1];
}
a[0]=temp;
}

printf("After Move: \n");
for(i=0;i<11;i++) printf("%d ",a[i]);

getch();
return 1;
}

指针法:
#include<conio.h>
#include<stdio.h>

int main()
{
int a[11]={0,1,2,3,4,5,6,7,8,9,10};
int N;
int i,j,temp;

printf("Please input N: \n");
scanf("%d",&N);

for(i=0;i<N;i++)
{
temp=*(a+10);
for(j=10;j>=1;j--)
{
*(a+j)=*(a+j-1);
}
*a=temp;
}

printf("After Move: \n");
for(i=0;i<11;i++) printf("%d ",*(a+i));

getch();
return 1;
}

2.
数组法:
#include<conio.h>
#include<stdio.h>

int main()
{
int a[20]={0};
int i,j,sum=0;

printf("请输入20个数: \n");
for(i=0;i<20;i++)
{
printf("%d: ",i+1);
fflush(stdin);
scanf("%d",&a[i]);
}

printf("输入的数为: \n");
for(i=0;i<20;i++)
{
printf("%d ",a[i]);
if((i+1)%5==0) printf("\n");
}

for(i=0;i<20;i++)
if(a[i]%2==0) sum+=a[i];

printf("\n偶数的和为: %d",sum);

getch();
return 1;
}

指针法:
#include<conio.h>
#include<stdio.h>

int main()
{
int a[20]={0};
int i,j,sum=0;

printf("请输入20个数: \n");
for(i=0;i<20;i++)
{
printf("%d: ",i+1);
fflush(stdin);
scanf("%d",a+i);
}

printf("输入的数为: \n");
for(i=0;i<20;i++)
{
printf("%d ",*(a+i));
if((i+1)%5==0) printf("\n");
}

for(i=0;i<20;i++)
if(*(a+i)%2==0) sum+=*(a+i);

printf("\n偶数的和为: %d",sum);

getch();
return 1;
}

3.
指针法:#include<conio.h>
#include<stdio.h>

int main()
{
int a[15]={0};
int i,num;

printf("请输入15个数: \n");
for(i=0;i<15;i++)
{
printf("%d: ",i+1);
fflush(stdin);
scanf("%d",a+i);
}

printf("要找的数为: \n");
scanf("%d",&num);

for(i=0;i<15;i++)
if(*(a+i)==num)
{
printf("该数是数组中的元素的第%d个元素的值.\n",i+1);
break;
}

if(i==15)
printf("无此数.");

getch();
return 1;
}

数组法:
#include<conio.h>
#include<stdio.h>

int main()
{
int a[15]={0};
int i,num;

printf("请输入15个数: \n");
for(i=0;i<15;i++)
{
printf("%d: ",i+1);
fflush(stdin);
scanf("%d",&a[i]);
}

printf("要找的数为: \n");
scanf("%d",&num);

for(i=0;i<15;i++)
if(a[i]==num)
{
printf("该数是数组中的元素的第%d个元素的值.\n",i+1);
break;
}

if(i==15)
printf("无此数.");

getch();
return 1;
}

4.
数组法:
#include<conio.h>
#include<stdio.h>

int main()
{
int a[11]={0};
int i,num;
int p=0;

printf("请输入10个数: \n");
for(i=0;i<10;i++)
{
printf("%d: ",i+1);
fflush(stdin);
scanf("%d",&a[i]);
}

printf("要插入的数为: \n");
scanf("%d",&num);

while(num>a[p]&&p<10)
p=p+1;

for(i=9;i>=p-1;i--)
a[i+1]=a[i];

a[p]=num;

printf("Result: \n");
for(i=0;i<11;i++)
printf("%d ",a[i]);

getch();
return 1;
}

指针法:
#include<conio.h>
#include<stdio.h>

int main()
{
int a[11]={0};
int i,num;
int p=0;

printf("请输入10个数: \n");
for(i=0;i<10;i++)
{
printf("%d: ",i+1);
fflush(stdin);
scanf("%d",a+i);
}

printf("要插入的数为: \n");
scanf("%d",&num);

while(num>*(a+p)&&p<10)
p=p+1;

for(i=9;i>=p-1;i--)
*(a+i+1)=*(a+i);

*(a+p)=num;

printf("Result: \n");
for(i=0;i<11;i++)
printf("%d ",*(a+i));

getch();
return 1;
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-11-13
1
提示:
大写和小写在阿斯可(忘记怎么拼写了)
相差32
你减一下
就出来了。。
2
提示:
用数组或者字符指针定义2个字符串,一个是原来的,一个是结果。循环查找,如果找到字母,那么替换,如果没有找到,保存不变,将结果赋值给第一个结果的数组。
3
提示:用数组或者字符指针定义2个字符串,一个是原来的,一个是结果。for循环取其前20个字符,并且赋值给结果字符串。
呵呵。。
代码不难哦,思路说了一下,自己写写看。
第2个回答  2009-03-31
能把你编的程序给看看吗?大家好直接找错误,省得重编
相似回答