谢明亮会进国家电网吗:C语言的两个问题,高手帮忙,谢谢!

来源:百度文库 编辑:杭州交通信息网 时间:2024/05/03 05:05:06
1.编写一个函数,该函数将一个字符串中的所有大写字母改为相应的小写字母,其它不变比如输入"DS45jjh"输出"ds45jjh"
3.计算一个3乘3矩阵的两条对角线之和,比如输入abc,def,ghi输出SUM=(a+e+i)+(c+e+g)的和。
老师布置的12个题,其中这4个不是很懂 已经有高手帮我解决掉2个 现在还有2个 望高手指点 请标明题目序号 谢谢
问题补充:请高手先测试一下,好多高手给我的答案都是错误的,谢谢!(至今为止这两个题目都没通过C2.0测试,好多都是调试通过但ALT+R错误)

我可以找出第一位的错误,
第一位在第二个问题的参数传递上肯定回出错
你先试一下,可以了就不用看我的,不可以再用我的,
最好把两个结合在一起是最好的
1:
void mini_to_max(char *a,char *b){
int i=0;
while(a[i]!='\0'){
if(a[i]>64&&a[i]<91){
b[i]=a[i]+32;
}
else{
b[i]=a[i];
}
i++;
}
b[i]=a[i];
}
main(){
char data[10]="3dDKJFGdfg";
char convert[10];
mini_to_max(data,convert);
printf("%s,%s\n",data,convert);

}

2:
#include<stdio.h>
#include<string.h>
int matrix(int **a){
int i=0,j=0,n;
int sum=0,sum1=0,sum2=0;
for(i=0,j=2;i<3;i++,j--){

sum1=sum1+(*(a[i]+i));
sum2=sum2+(*(a[i]+j));
//a++;
}
sum=sum1+sum2;
return sum;
}
main(){
int data[3][3]={{1,2,3},
{4,5,6},
{7,8,9}};

int *p[3]={data[0],data[1],data[2]};
printf("%d\n",matrix(p));

}

/*
1.编写一个函数,该函数将一个字符串中的所有大写字母改为相应的小写字母,
其它不变比如输入"DS45jjh"输出"ds45jjh"

*/

#include<stdio.h>
#include<string.h> /*函数运行时不需要这个头文件,仅是主程序中strcpy需要*/

void convert(char *s)
{
while(*s!='\0')
{
if(*s>='A' && *s<='Z')
*s+=32;
s++;
}
}

void main()
{
char s[100];
strcpy(s,"CHINA25chinaA");
convert(s);
printf("%s",s);
}

输出china25chinaa

/*
3.计算一个3乘3矩阵的两条对角线之和,比如输入abc,def,ghi输出SUM=(a+e+i)+(c+e+g)的和。
*/

#include<stdio.h>

void main()
{
int a[3][3]={{1,2,3},{4,5,6},{7,8,9}};
int i,j=2,sum=0;
for(i=0;i<3;i++)
{
sum+=a[i][i];
sum+=a[i][j];
j--;
}
printf("sum=%d",sum);
}

输出 sum=30

有人解答了我加两分就可以了,呵呵

有人解答了我加两分就可以了,呵呵
上面的没什么错,估计你的编程环境有点问题.

#include <stdio.h>
#include <string.h>

void Trans(char* stra)
{
int i;
int len;
len = strlen(stra);
for(i = 0; i < len; i++)
{
if(stra[i] <= 'Z' && stra[i] >= 'A')
stra[i] = stra[i] + 32;
}
}

void main(void)
{
char str[] = "DS45jjh";
Trans(str);
puts(str);
}

都答的不错!