帮忙用C语言做几个作业题,急!满意再加分。

2024-11-18 20:31:33
推荐回答(5个)
回答1:

1.1

#include
#include

int main()
{
int i,n,len;
char str[200];
gets(str);
len=strlen(str);
for(i=0;i{
if('a'<=str[i] && str[i]<='z')
str[i]-=32;
else if('A'<=str[i] && str[i]<='Z')
str[i]+=32;
}
puts(str);
return 0;
}
------------------------------------------------------------------------------------------------------------------------------------------
1.2

#include
#define N 3 // 可改 50

int main()
{
int i;
int score[N][3];
int s[3]={0,0,0};
printf("输入%d个学生3门课的成绩\n",N);
for(i=0;i{
printf("输入第%d个学生3门课的成绩\n",i+1);
scanf("%d %d %d",&score[i][0],&score[i][1],&score[i][2]);
s[0]+=score[i][0];
s[1]+=score[i][1];
s[2]+=score[i][2];
}
printf("%d个学生3门课程的总成绩分别是:%d\t%d\t%d\n",N,s[0],s[1],s[2]);
printf("%d个学生3门课程的平均成绩分别是:%.2f\t%.2f\t%.2f\n",N,s[0]*1.0/N,s[1]*1.0/N,s[2]

*1.0/N);

return 0;
}
------------------------------------------------------------------------------------------------------------------------------------------
2.1

#include
float fmin(float a,float b)
{
if(aelse return b;
}

int main()
{
float f1,f2,min;
printf("请输入两个实数:\n");
scanf("%f %f",&f1,&f2);
min=fmin(f1,f2);
printf("其最小值是:%f\n",min);
return 0;
}
-----------------------------------------------------------------------------------------------------------------------------------------
2.2

#include
#define N 10
float f_ave(int a[])
{
int i,sum=0;
float f;
for(i=0;if=sum*1.0/N;
return f;
}

int main()
{
int i;
int sco[N];
float ave;
printf("请输入10名学生的成绩:\n");
for(i=0;iave=f_ave(sco);
printf("%d名学生的平均成绩是:%.2f\n",N,ave);
return 0;
}
-------------------------------------------------------------------------------------------------------------------
2.3

#include

int gcd(int a, int b)
{
int temp;
if (a < b)
{
temp=a;
a=b;
b=temp;
}
if (b == 0)
return a;
else
return gcd(b, a%b);
}

int lcm(int a, int b)
{
return a*b/gcd(a, b);
}

int main()
{
int a,b;
printf("请输入2个整数:\n");
scanf("%d %d",&a,&b);
printf("其最小公倍数为:%d\n",lcm(a,b));
return 0;
}

--------------------------------------------------------------------------------------------------------------------------------------
2.4

#include

void d2b(int d)
{
int i,a,k=0;
int w[100];
a=d;
while(a>0)
{
w[k++]=a%2;
a/=2;
}
printf("%d的二进制表示为:",d);
for(i=k-1;i>=0;i--) printf("%d",w[i]);
printf("\n");
}

int main()
{
int a;
printf("请输入一个10进制数:\n");
scanf("%d",&a);
d2b(a);
return 0;
}

---------------------------------------------------------------------------------------------------------------------------------------
2.5

#include

void Y_1(int n)
{
int i;
double y=0.0;
for(i=1;i<=n;i++) y+=1.0/i;
printf("Y=1+1/2+1/3……+1/%d=%.2lf\n",n,y);
}

void Y_2()
{
int i;
long sum=0;
for(i=1;i<99;i++) sum+=i*(i+1)*(i+2);
printf("Y=1×2×3+2×3×4+……+98×99×100=%ld\n",sum);
}

int main()
{
int n;
printf("请输入n值:\n");
scanf("%d",&n);
Y_1(n);
Y_2();
return 0;
}

-----------------------------------------------------------------------------------------------------------------------------------------
3.1

#include
int n;
float f_ave(int a[])
{
int i,sum=0;
float ave=0.0;
for(i=0;iave=sum*1.0/n;
return ave;
}

int main()
{
int i;
int array[200];
float ave;
printf("请输入数组的大小:\n");
scanf("%d",&n);
for(i=0;iave=f_ave(array);
printf("%d个数组元素的平均数为:%.2f\n",n,ave);
return 0;
}

3.2

#include
#include

char *str_conn(char a[],char b[])
{
int i,len,len1,len2;
char str[200];
len1=strlen(a);
len2=strlen(b);
len=len1+len2;
for(i=0;ifor(i=0;istr[len]='\0';
return str;
}

int main()
{
int i;
char str1[100],str2[100],*str;
printf("请输入第一个字符串:\n");
scanf("%s",str1);
printf("请输入第二个字符串:\n");
scanf("%s",str2);
str=str_conn(str1,str2);
printf("连接后的字符串为:%s\n",str);
return 0;
}

3.4

#include

int main()
{
int i,j,n,sum,temp;
sum=0;
printf("请输入数组的阶数:\n");
scanf("%d",&n);
printf("请输入%d*%d个数组元素:\n",n,n);
for(i=0;i{
for(j=0;j{
scanf("%d",&temp);
if(i==j) sum+=temp;
}
}
printf("数组的主对角元素之和是:%d\n",sum);

return 0;
}

3.5

#include
#include

int countc(char s[])
{
int i,n,len;
len=strlen(s);
n=0;
for(i=0;i{
if('A'<=s[i] && s[i]<='Z') n++;
}
return n;
}

int main()
{
int n;
char str[200];
printf("请输入一个字符串:\n");
gets(str);
n=countc(str);
printf("字符串中大写字母的个数是:%d\n",n);
return 0;
}

3.6

#include
#include

void f(int x,int y,int z)
{
float rst=0.0;
if(x==y && z==y)
{
printf("非法计算,分母为0!\n");
}
else
{
rst=(x+y)*1.0/(x-y)+(z+y)*1.0/(z-y);
printf("f(x,y,z)=:%.2f\n",rst);
}
}

int main()
{
int x,y,z;
printf("请输入X,Y,Z:\n");
scanf("%d %d %d",&x,&y,&z);
f(x,y,z);
return 0;
}

3.7

#include
#include

int ask_age(int n)
{
if(n==1) return 10;
else return ask_age(n-1)+2;
}

int main()
{
int n,age;
printf("请输入求第几位学生的年龄:\n");
scanf("%d",&n);
age=ask_age(n);
printf("第%d位学生的年龄为:%d\n",n,age);
return 0;
}

----------------------------------------------------------------------------------------------------------------------------

4.1

#include

int main()
{
int a,b,t;
int *p,*q,*tp;
printf("请输入两个int变量:\n");
scanf("%d %d",&a,&b);
p=&a;
q=&b;
{ // 交换 p,q
tp=p;
p=q;
q=tp;
}
{ // 交换p,q所指变量
t=*p;
*p=*q;
*q=t;
}
printf("交换后两个变量是:%d %d\n",a,b);
return 0;
}

-----------------------------------------------------------------------------------------------------------------------------
4.2

#include

int main()
{
int i,m,n,p1,p2;
int a[100];
printf("请输入数组的大小:\n");
scanf("%d",&n);
printf("输入%d个数组元素:\n",n);
for(i=0;iprintf("输入p,q指向数组元素的下标:\n");
scanf("%d %d",&p1,&p2);
m=(p1+p2)/2;
printf("p和q的中点r指向:a[%d],其值为%d\n",m,a[m]);
return 0;
}

-----------------------------------------------------------------------------------------------------------------------

5.1

#include

void s(int a[],int n)
{
int i,sum=0;
int *p=a;
float ave;
for(i=0;i{
sum+=*p;
p++;
}
ave=sum*1.0/n;
printf("数组的平均数是:%.2f\n",ave);
}

int main()
{
int i,n;
int a[100];
printf("请输入数组的大小:\n");
scanf("%d",&n);
printf("输入%d个数组元素:\n",n);
for(i=0;is(a,n);
return 0;
}

--------------------------------------------------------------------------------------------------------

5.2

#include

int main()
{
int k;
char str[200],*s;
printf("请输入一个字符串:\n");
gets(str);
s=str;
k=0;
while(*s!='\0')
{
k++;
s++;
}
printf("字符串的长度是:%d\n",k);
return 0;
}

-------------------------------------------------------------------------------------------------------------------

5.3

#include

int main()
{
int i;
float a[102],*min,*max;
printf("请输入100个实数:\n");
for(i=0;i<100;i++) scanf("%f",&a[i]);
min=a;
max=a;
for(i=1;i<100;i++)
{
if(*(a+i)>*max) max=a+i;
if(*(a+i)<*min) min=a+i;
}
printf("100个实数的最大值是:%.2f 最小值是:%.2f\n",*max,*min);
return 0;
}

---------------------------------------------------------------------------------------------------------------

5.4

#include
#define n 10
void sort(int a[])
{
int i,j,tp;
int *p=a;
for(i=0;i{
for(j=i+1;j{
if(*(p+i) > *(p+j))
{
tp=*(p+i);
*(p+i)=*(p+j);
*(p+j)=tp;
}
}
}
}

int main()
{
int i;
int a[102],*min,*max;
printf("请输入%d个整数:\n",n);
for(i=0;isort(a);
printf("排序后序列为:\n");
for(i=0;i<10;i++) printf("%d ",a[i]);
printf("\n");
return 0;
}

回答2:

都是些基本的题目,建议LZ看些c入门书籍
vc6.0 运行通过,如果LZ觉得还算可以的话,希望加些分,毕竟调了这么多,很费神的,前前后后花了三四个小时
1.1

#include
#include

int main()
{
int i,n,len;
char str[200];
gets(str);
len=strlen(str);
for(i=0;i{
if('a'<=str[i] && str[i]<='z')
str[i]-=32;
else if('A'<=str[i] && str[i]<='Z')
str[i]+=32;
}
puts(str);
return 0;
}
------------------------------------------------------------------------------------------------------------------------------------------
1.2

#include
#define N 3 // 可改 50

int main()
{
int i;
int score[N][3];
int s[3]={0,0,0};
printf("输入%d个学生3门课的成绩\n",N);
for(i=0;i{
printf("输入第%d个学生3门课的成绩\n",i+1);
scanf("%d %d %d",&score[i][0],&score[i][1],&score[i][2]);
s[0]+=score[i][0];
s[1]+=score[i][1];
s[2]+=score[i][2];
}
printf("%d个学生3门课程的总成绩分别是:%d\t%d\t%d\n",N,s[0],s[1],s[2]);
printf("%d个学生3门课程的平均成绩分别是:%.2f\t%.2f\t%.2f\n",N,s[0]*1.0/N,s[1]*1.0/N,s[2]

*1.0/N);

return 0;
}
------------------------------------------------------------------------------------------------------------------------------------------
2.1

#include
float fmin(float a,float b)
{
if(a else return b;
}

int main()
{
float f1,f2,min;
printf("请输入两个实数:\n");
scanf("%f %f",&f1,&f2);
min=fmin(f1,f2);
printf("其最小值是:%f\n",min);
return 0;
}
-----------------------------------------------------------------------------------------------------------------------------------------
2.2

#include
#define N 10
float f_ave(int a[])
{
int i,sum=0;
float f;
for(i=0;i f=sum*1.0/N;
return f;
}

int main()
{
int i;
int sco[N];
float ave;
printf("请输入10名学生的成绩:\n");
for(i=0;i ave=f_ave(sco);
printf("%d名学生的平均成绩是:%.2f\n",N,ave);
return 0;
}
-------------------------------------------------------------------------------------------------------------------
2.3

#include

int gcd(int a, int b)
{
int temp;
if (a < b)
{
temp=a;
a=b;
b=temp;
}
if (b == 0)
return a;
else
return gcd(b, a%b);
}

int lcm(int a, int b)
{
return a*b/gcd(a, b);
}

int main()
{
int a,b;
printf("请输入2个整数:\n");
scanf("%d %d",&a,&b);
printf("其最小公倍数为:%d\n",lcm(a,b));
return 0;
}

--------------------------------------------------------------------------------------------------------------------------------------
2.4

#include

void d2b(int d)
{
int i,a,k=0;
int w[100];
a=d;
while(a>0)
{
w[k++]=a%2;
a/=2;
}
printf("%d的二进制表示为:",d);
for(i=k-1;i>=0;i--) printf("%d",w[i]);
printf("\n");
}

int main()
{
int a;
printf("请输入一个10进制数:\n");
scanf("%d",&a);
d2b(a);
return 0;
}

---------------------------------------------------------------------------------------------------------------------------------------
2.5

#include

void Y_1(int n)
{
int i;
double y=0.0;
for(i=1;i<=n;i++) y+=1.0/i;
printf("Y=1+1/2+1/3……+1/%d=%.2lf\n",n,y);
}

void Y_2()
{
int i;
long sum=0;
for(i=1;i<99;i++) sum+=i*(i+1)*(i+2);
printf("Y=1×2×3+2×3×4+……+98×99×100=%ld\n",sum);
}

int main()
{
int n;
printf("请输入n值:\n");
scanf("%d",&n);
Y_1(n);
Y_2();
return 0;
}

-----------------------------------------------------------------------------------------------------------------------------------------
3.1

#include
int n;
float f_ave(int a[])
{
int i,sum=0;
float ave=0.0;
for(i=0;i ave=sum*1.0/n;
return ave;
}

int main()
{
int i;
int array[200];
float ave;
printf("请输入数组的大小:\n");
scanf("%d",&n);
for(i=0;i ave=f_ave(array);
printf("%d个数组元素的平均数为:%.2f\n",n,ave);
return 0;
}

3.2

#include
#include

char *str_conn(char a[],char b[])
{
int i,len,len1,len2;
char str[200];
len1=strlen(a);
len2=strlen(b);
len=len1+len2;
for(i=0;i for(i=0;i str[len]='\0';
return str;
}

int main()
{
int i;
char str1[100],str2[100],*str;
printf("请输入第一个字符串:\n");
scanf("%s",str1);
printf("请输入第二个字符串:\n");
scanf("%s",str2);
str=str_conn(str1,str2);
printf("连接后的字符串为:%s\n",str);
return 0;
}

3.4

#include

int main()
{
int i,j,n,sum,temp;
sum=0;
printf("请输入数组的阶数:\n");
scanf("%d",&n);
printf("请输入%d*%d个数组元素:\n",n,n);
for(i=0;i {
for(j=0;j {
scanf("%d",&temp);
if(i==j) sum+=temp;
}
}
printf("数组的主对角元素之和是:%d\n",sum);

return 0;
}

3.5

#include
#include

int countc(char s[])
{
int i,n,len;
len=strlen(s);
n=0;
for(i=0;i {
if('A'<=s[i] && s[i]<='Z') n++;
}
return n;
}

int main()
{
int n;
char str[200];
printf("请输入一个字符串:\n");
gets(str);
n=countc(str);
printf("字符串中大写字母的个数是:%d\n",n);
return 0;
}

3.6

#include
#include

void f(int x,int y,int z)
{
float rst=0.0;
if(x==y && z==y)
{
printf("非法计算,分母为0!\n");
}
else
{
rst=(x+y)*1.0/(x-y)+(z+y)*1.0/(z-y);
printf("f(x,y,z)=:%.2f\n",rst);
}
}

int main()
{
int x,y,z;
printf("请输入X,Y,Z:\n");
scanf("%d %d %d",&x,&y,&z);
f(x,y,z);
return 0;
}

3.7

#include
#include

int ask_age(int n)
{
if(n==1) return 10;
else return ask_age(n-1)+2;
}

int main()
{
int n,age;
printf("请输入求第几位学生的年龄:\n");
scanf("%d",&n);
age=ask_age(n);
printf("第%d位学生的年龄为:%d\n",n,age);
return 0;
}

----------------------------------------------------------------------------------------------------------------------------

4.1

#include

int main()
{
int a,b,t;
int *p,*q,*tp;
printf("请输入两个int变量:\n");
scanf("%d %d",&a,&b);
p=&a;
q=&b;
{ // 交换 p,q
tp=p;
p=q;
q=tp;
}
{ // 交换p,q所指变量
t=*p;
*p=*q;
*q=t;
}
printf("交换后两个变量是:%d %d\n",a,b);
return 0;
}

-----------------------------------------------------------------------------------------------------------------------------
4.2

#include

int main()
{
int i,m,n,p1,p2;
int a[100];
printf("请输入数组的大小:\n");
scanf("%d",&n);
printf("输入%d个数组元素:\n",n);
for(i=0;i printf("输入p,q指向数组元素的下标:\n");
scanf("%d %d",&p1,&p2);
m=(p1+p2)/2;
printf("p和q的中点r指向:a[%d],其值为%d\n",m,a[m]);
return 0;
}

-----------------------------------------------------------------------------------------------------------------------

5.1

#include

void s(int a[],int n)
{
int i,sum=0;
int *p=a;
float ave;
for(i=0;i {
sum+=*p;
p++;
}
ave=sum*1.0/n;
printf("数组的平均数是:%.2f\n",ave);
}

int main()
{
int i,n;
int a[100];
printf("请输入数组的大小:\n");
scanf("%d",&n);
printf("输入%d个数组元素:\n",n);
for(i=0;i s(a,n);
return 0;
}

--------------------------------------------------------------------------------------------------------

5.2

#include

int main()
{
int k;
char str[200],*s;
printf("请输入一个字符串:\n");
gets(str);
s=str;
k=0;
while(*s!='\0')
{
k++;
s++;
}
printf("字符串的长度是:%d\n",k);
return 0;
}

-------------------------------------------------------------------------------------------------------------------

5.3

#include

int main()
{
int i;
float a[102],*min,*max;
printf("请输入100个实数:\n");
for(i=0;i<100;i++) scanf("%f",&a[i]);
min=a;
max=a;
for(i=1;i<100;i++)
{
if(*(a+i)>*max) max=a+i;
if(*(a+i)<*min) min=a+i;
}
printf("100个实数的最大值是:%.2f 最小值是:%.2f\n",*max,*min);
return 0;
}

---------------------------------------------------------------------------------------------------------------

5.4

#include
#define n 10
void sort(int a[])
{
int i,j,tp;
int *p=a;
for(i=0;i {
for(j=i+1;j {
if(*(p+i) > *(p+j))
{
tp=*(p+i);
*(p+i)=*(p+j);
*(p+j)=tp;
}
}
}
}

int main()
{
int i;
int a[102],*min,*max;
printf("请输入%d个整数:\n",n);
for(i=0;i sort(a);
printf("排序后序列为:\n");
for(i=0;i<10;i++) printf("%d ",a[i]);
printf("\n");
return 0;
}

回答3:

/***********************************************************
(1) 输入一个字符串,将其中所有大写字母改为小写字母,而所有小写字母全部改为大写字母,然后输出。
设计步骤
①用gets输入字符串;
②用循环判断字符串中的每个字符是大写还是小写,若是大写要转换成小写,是小写要转换成大写:大写与小写字母的转换关系是“小写字母=大写字母+32”
③用puts输出该字符串。
***********************************************************/
#include
#include

void main()
{
char *s;
int i;
gets(s);
for(i = 0; i < strlen(s); i++)
{
if( *(s+i) > 64 && *(s+i) < 91 )
*(s+i) += 32;
else if( *(s+i) > 96 && *(s+i) < 123 )
*(s+i) -= 32;
}
printf("\n");
puts(s);
}

/***********************************************************
(2) 设某班50名学生的三科成绩表如下
课程一 课程二 课程三
… … …
编一个程序,输入这50个学生的三科成绩,计算并输出每科成绩的平均分。
设计步骤:
① 可先按3个学生3门课成绩设计,通过后再改成50个学生;
② 先将3个学生3门课的成绩通过scanf函数送入字符数组score;
③ 求出3个学生每门课程的总成绩,放入s一维数组中;
④ 求出每门课程的平均成绩并输出。***********************************************************/
#include

#define STU_NUM 3

void score_input(int (*score)[3]);
void score_process(int (*score)[3], int *, float *);
void score_output(int (*score)[3], int *, float *);

int main()
{
int score[STU_NUM][3],s[STU_NUM];
float average[3];
int i,j,k;
score_input(score); //When you are inputing the scores, you can use two Tab as the separator.
score_process(score,s,average);
score_output(score,s,average);
}

void score_input(int (*score)[3] )
{
int i,j;
printf("Please input the %d students' scores:",STU_NUM);
printf("\n Subject_NO1 Subject_NO2 Subject_NO3:\n");
for(i = 0; i < STU_NUM; i++)
{
printf("The %dth student:",i+1);
printf(" ");
for(j = 0; j < 3; j++)
{
scanf("%d",*(score+i)+j);
}
}
}
void score_process(int (*score)[3], int *s, float *average)
{
int i,j;
for(i = 0; i < STU_NUM; i++)
{
int sum = 0,j;
for(j = 0; j < 3; j++)
sum += *(*(score+i)+j);
*(s+i) = sum;
}

for(j = 0; j < 3; j++)
{
int sum = 0;
for(i = 0; i < STU_NUM; i++)
sum += *(*(score+i)+j);
printf("_______%d________\n",sum);
*(average+j) = sum * 1.0 / STU_NUM;
}
}
void score_output(int (*score)[3], int *s, float *average)
{
int j;
for(j = 0; j < 3; j++)
{
printf("The %dth subject's average score is : %.2f .\n",j+1,*(average+j));
}
}

/********************************************(1)编写自定义函数,实现求两个实数最小值的功能。
(2)计算10名学生1门课成绩的平均分。(程序设计要求:用自定义函数来实现,注意自定义函数的形式及参数之间的传递,用主函数来调用自定义函数实现功能。)
(3)定义二个整数(x、y)最小公倍数的函数。
(4)利用自定义函数编写程序,实现将一个十进制数转换成二进制数。
(5)利用自定义函数编写程序,求下面的式子:
Y=1+1/2+1/3……+1/n (n的数值自定)
Y=1×2×3+2×3×4+……+98×99×100

**********************************************************************/

#include

double double_min(double x, double y)
{
return x > y ? y : x;
}

double average(double *score)
{
const int n = 10;
int i;
double aver,sum = 0;
for(i = 0; i < 10; i++)
sum += *(score+i);
aver = sum/10.0;
return aver;
}

int co_mutiple(int x, int y)
{
int temp;
temp = x > y ? x : y;
while( (temp % x != 0) || (temp % y != 0) )
temp++;
return temp;
}

void Dec_to_Bin(void)
{
int x,i,a[32],e;
scanf("%d",&x);
for(i = 0; i < 32; i++)
{
a[i] = x&0x01;
x=x>>1;
}
e = 0;
printf("It is :");
for(i = 31; i >= 0; i--)
{
if( (a[i] == 0) && (e == 0) )
continue;
e = 1;
printf("%d",a[i]);
}
printf("\n");
}

double caculate_Y1(int n)
{
int i;
double sum = 0;
for(i = 1; i < n+1; i++)
sum += 1.0/i;
return sum;
}

long caculate_Y2(int n)
{
int i;
long sum = 0;
for(i = 3; i < n; i++)
sum += i*(i-1)*(i-2);
return sum;
}
void main()
{
Dec_to_Bin();
printf("%lf\n%d\n",caculate_Y1(23),caculate_Y2(100));
}

累死了,先不写了

回答4:

楼上的哥们 你穷疯了吧
虽然没看你代码 不过光凭你这精神 楼主也要给你分

回答5:

花一小时做这些题,不如去做些更有意义的活动呢!跑步去……