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

2025-02-22 12:11:31
推荐回答(4个)
回答1:

13
#include
#include
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
#include
using namespace std;
int mypow(int x,int y)
{
int ans=1;
for(int i=0;i {
ans*=x;
}
return ans;
}
int main()
{
int n,m;
scanf("%d %d",&n,&m);
printf("%d",mypow(n,m));

return 0;
}
15

#include
#include
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
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 {
if (a[i]>average)
{
ans++;
printf("%d ",a[i]);
}

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

回答2:

13.
#include
#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;

}
太多了,一条条做吧

回答3:

#include
#include
#include
#include
#include

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 {
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 {
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;
}

回答4:

都很简单,但是都写出来要不少时间,给100分,帮你搞,我亲自调试后发你邮箱