c语言高手进,尽量多做点

13. 定义一个函数even(),判断一个整数是否是偶数。如果是偶数返回1,否则返回0。(要求包括能使程序正常运行的主函数)
14. 编写函数mypow,求整型变量x的y次方。(要求包括能使程序正常运行的主函数)
15. 输入一个3位整数,输出它的逆序数。例如,输入127,输出应该是721。
16. 求若干个同学某门课的平均成绩。每一个学生的成绩在程序运行时通过scanf()输入,若输入-1,则表示输入到此结束,然后输出大于平均成绩的学生成绩以及人数。
17. 如图所示,有n个整数,使前面各数顺序向后移m个位置,最后m个数变成最前面m个数(顺序不变)。参照上例编写三个函数:数据的产生(用随机函数)、处理和显示的功能,在主函数中定义一个具有n个元素的数组,并调用这三个函数实现整个程序的功能。

18. 编写一个字符串连接函数,其功能是将两个字符串连接起来形成一个新的字符串,以实现库函数strcat()的功能。
19. 编写一个字符串复制函数,其功能是将字符数组s2中的全部字符(包括字符串结束符号'\0')拷贝到字符数组 s1 中,以实现库函数strcpy()的功能。
20. 有一字符串,包含n个字符。写一函数,将此字符串中从第m个字符开始的全部字符复制成为另一个字符串。

13
#include <iostream>
#include <cstdio>
using namespace std;
bool even(int n)
{
if(n%2) return 0;
else return 1;
}
int main()
{
int n;
scanf("%d",&n);
if(even(n)) printf("1\n");
else printf("0\n");
return 0;
}
14
#include <iostream>
#include <cstdio>
using namespace std;
int mypow(int x,int y)
{
int ans=1;
for(int i=0;i<y;i++)
{
ans*=x;
}
return ans;
}
int main()
{
int n,m;
scanf("%d %d",&n,&m);
printf("%d",mypow(n,m));

return 0;
}
15

#include <iostream>
#include <cstdio>
using namespace std;

int main()
{
char a[1000];
scanf("%s",a);
for(int i=strlen(a)-1;i>=0;i--)
printf("%c",a[i]);
return 0;
}
16
#include <stdio.h>
int main()
{
int a[100],i=0;//n为人数
int sum=0;

while (scanf("%d",&a[i])&&a[i]!=-1)
{
sum+=a[i];
i++;
}
int n=i;
double average=(double)sum/(double)n;
int ans=0;
for (int i=0;i<n;i++)
{
if (a[i]>average)
{
ans++;
printf("%d ",a[i]);
}

}printf("\n");
printf("%d\n",ans);
return 0;
}追问

13运行有错

追答

不能呀,偶数输出1,奇数是0,我的编译是过的

追问

我是c++额,亲

追答

额,你不是要c吗?我费劲写的scanf,和printf,别的没有区别呀
17
#include
#include
using namespace std;
int random()
{
return rand()%10000;
}
int *make(int *a,int l,int m)
{
int c[10000];
for(int i=0;i<m;i++)
{
c[i]=a[i];
}
int j;
for(int i=l,j=0;i<l;i++,j++)
{
a[j]=c[i];
}
for(int i=0,j=l;j<m;i++)
{
a[j]=c[i];
}
return a;
}
void print(int *a,int m)
{
for(int i=0;i<m;i++)
{
printf("%d ",&a[i]);
}
printf("\n");
}
int main()
{

int b[10000];
int m;
scanf("%d",&m);
for(int i=0;i<m;i++)
{
b[i]=random();
}
int l;
scanf("%d",&l);
make(b,l,m);
print(b,m);
return 0;
}

追问

不好意思,亲

追答

18

#include
#include
using namespace std;
int main()
{
char a[100],b[100];
cin>>a>>b;
int alength=strlen(a);
int blength=strlen(b);
char c[200];
for(int i=0;i
#include
using namespace std;
int main()
{
char s1[1000],s2[1000];
cin>>s1>>s2;
for(int i=0;i
#include
#include
using namespace std;
char *link(char *a,char *b,int m)
{
for(int i=m;i>s1>>s2;
int m;
cin>>m;
link(s1,s2,m);
cout<<s1<<endl;
return 0;
}
所有程序都结束了,希望楼主采纳……有什么问题尽管说……

楼主不觉得我很辛苦吗……都是手打的呀……

温馨提示:内容为网友见解,仅供参考
第1个回答  2012-06-12
13.
#include<stdio.h>
#include "math.h"
int even(int i);
void main()
{
int i;
int flag;
while(1)
{
scanf("%d",&i);
if((flag=even(i))==0)
printf("%d 是偶数\n",i);
else
printf("%d 不是偶数\n",i);
}
getchar();
}
int even(int i)
{
int j;
int flag=0;

if((j=i%2) != 0)
flag = 1;
printf("===>%d\n",flag);
return flag;

}
太多了,一条条做吧本回答被网友采纳
第2个回答  2012-06-12
#include <stdio.h>
#include <sys/time.h>
#include <time.h>
#include <stdlib.h>
#include <string.h>

int even(int num)//偶数 13
{
return (num%2==0);
}
int mypow(int x, int y)//x的Y次方 14
{
int dul = 1;
while(y--)
{
dul *= x;
}
return dul;
}
int nixu(int num) //逆序15
{
if ((num>=100)&&(num<=999))
{
return ((num%100)/10)*10 + (num%10)*100 + num/100*1;
}
return 0;
}
void average() //16
{
double average,sum;
double grade[50];
int count = 0;
int better_count = 0;
do{
scanf("%lf", &grade[count]);
if (grade[count] == -1)
break;
else
{
sum += grade[count];
count++;
}
}while(1);
average = sum/(double)count;
int i;
printf("平均分为:%.2lf\n大于平均分的分数:",average);
for (i = 0;i<count;i++)
{
if (grade[i] > average)
{
better_count++;
printf("%.2lf\t", grade[i]);
}
}
printf("\n人数为:%d\n", better_count);

}

void get_data(int *num, int n)//17随机数
{
srand(time(NULL));
while(n--)
{
num[n] = rand() % 1000;
}
}
void deal_data(int *num, int n, int move)//17后移
{
int i;
int last;
while((move--) > 0)
{
last = num[n-1];
for(i = n-1;i>0;i--)
{
num[i] = num[i-1];
}
num[0] = last;
}
}
void print(int *num, int n)//17输出
{
int i;
puts("num:");
for(i=0;i<n;i++)
{
printf("%d\t", num[i]);
}
printf("\n");
}

//下面两个 要保证s1空间充足
void mystrcat(char *s1, char *s2)//18
{
while(*(s1++));
s1--;
while((*(s1++) = *(s2++)) != '\0');
}

void mystrcpy(char *s1, char *s2)//19
{
while((*(s1++) = *(s2++)) != '\0');
}

void speccpy(char *dest, char *src, int n, int m) // 20
{
if (n>m)
{
m--;
while((*(dest++) = *((src++)+m)) != '\0');
}
}
int main()
{
// printf("13\n\t12是不是偶数:%d\n", even(12));

// printf("14\n\t2的2次方:%d\n", mypow(2,2));

// printf("15\n\t123的逆序%d\n", nixu(123));

// printf("16\n\t求平均数:\n");
// average();

// printf("17\n");
// int num[10];
// get_data(num, 10);
// print(num, 10);
// deal_data(num, 10, 2);
// print(num, 10);

// printf("18\n");
// char p[20] = "hello ";
// char *s = "world\n";
// mystrcat(p, s);
// puts(p);

// printf("19\n");
// char p[20];
// char *s = "strcpy";
// mystrcpy(p, s);
// puts(p);

printf("20\n");
char p[20];
char *s = "speccpy";
speccpy(p, s, strlen(s), 3);
puts(p);
return 0;
}追问

亲,谢谢你的回答,辛苦了,但我已经把满意给了上面的亲,不好意思,见谅,谢谢了,

第3个回答  2012-06-12
都很简单,但是都写出来要不少时间,给100分,帮你搞,我亲自调试后发你邮箱

C语言编程问题 高手进... 高分加...
void main(){int i,j,a[10][10];a[0][0]=a[1][0]=a[1][1]=1;printf("%4d\\n%4d%4d\\n",a[0][0],a[1][0],a[1][1]);for(i=2;i<=9;i++){ a[i][0]=1;printf("%4d",a[i][0]);for(j=1;j<=i-1;j++){a[i][j]=a[i-1][j]+a[i-1][j-1];pri...

C语言高手进………
include<stdlib.h> typedef struct node { int data;struct node *next;}NODE;void sort1(NODE *head) \/\/ 由大到小排序 { int t;for(NODE *p = head;p != NULL; p = p->next){ for(NODE *s = p->next;s != NULL; s = s->next)if(p->data < s->data){ t = p->...

C语言高手进。
d=d\/g;g--;

如何学c语言?是不是该多做练习?
1、程语语言其实是一个很初级的工具,但是又必须熟练的掌握它,学懂一门编程语言就好像学会了写字,但是会写字的人不见得会写文章,而会写文章又不见的写得好。可是如果不会写字,那就一定写不出文章来。2、在学习C语言之前,应该学好计算机基础。里面的很多概念对于C程序员都是非常重要的。如果在...

怎样学好c语言。。。
学编程工 多看书 多做题 多实践 怎样才能学好C语言 第一:C语言语法结构很简洁精妙,写出的程序也很高效,很便于描述算法,大多数的程序员愿意使用C语言去描述算法本身,所以,如果你想在程序设计方面有所建树,就必须去学它。第二:C语言能够让你深入系统底层,你知道的操作系统,哪一个不是C语言写...

C语言。高分急求。高手进。(做好再加高分,编程题6题)
enum{MAX=10};\/\/n为阶数,想要多少改为多少 void main(){ int a[MAX][MAX];int i,j,t;int n;puts("输入幻方的阶数:");scanf("%d",&n);\/\/将数组中所有的数都置零 for(i=0;i<n;i++){ for(j=0;j<n;j++)a[i][j]=0;} \/\/幻方阵赋值 i=0;j=n\/2;a[i][j]=1;\/\/...

菜鸟问一段C语言的程序,高手进
建议把程序的printf("%c\\n",argv[i][j]);改为printf("%c_",argv[i][j]);将工程编译后在命令提示符下运行(开始-运行-输入cmd,按回车即可),然后进入程序所在磁盘,(命令cd 文件路劲即可进入)。输入编译好的程序名+几个字符串,中间用空格隔开。你就会有深刻的体会了!程序运行截图如下(...

编程高手请进!(C语言)
1.include <stdio.h> include<stdlib.h> include<ctype.h> main(){ int count;\/*猜数字的次数*\/ int number;\/*系统产生的随机数字*\/ int guess;\/*程序员输入数字*\/ char yes='Y';clrscr();printf("\\nNow let us play the game.\\n Guess the number:");while (toupper(yes)=='Y'...

急!!!c语言高手进!
第一个很简单,就是实现数组的移动而已 也就是任意位置后面的数据前移一个位置或者后移一个位置的算法 这个就是循环而已 这个两个方式,一个是在原来的基础上做 插入的话,从数组后面开始循环后移,直到插入的地方插入 删除直接冲那个位置用后面的数据覆盖即可 第二个是用新的数组,复制的插入位置,...

c语言 字符串长度与数组长度,高手进
你好 应该这样理解 首先,就c语言来讲,字符串的实现一般使用数组,例如 char s[] = "hello";hello里面有五个字符 分别是 h e l l o 由于c语言规定在存放字符串的数组里要以字符串结束符来结束 也就是‘\\0’所以上面定义中的数组s长度为字符总个数5 加上一个结束符‘\\0’ 也就是6 那么 ...

相似回答