第一题:
创新互联公司主营淇滨网站建设的网络公司,主营网站建设方案,成都app软件开发,淇滨h5重庆小程序开发搭建,淇滨网站营销推广欢迎淇滨等地区企业咨询
我用的是动态二维数组,你可以试着从键盘输入你想要求的任何数组
程序如下:
#include stdio.h
#include stdlib.h
int Fun(int *p,int n);
void main()
{
int *p=NULL,i,j,n,s;
printf("请输入矩阵的宽度:");
scanf("%d",n);
p = (int *)calloc(n*n,sizeof(int));
if(p==NULL)
{
printf("定义的矩阵过大!");
exit(0);
}
printf("请输入数据:");
for(i=0;in;i++)
for(j=0;jn;j++)
scanf("%d",p[i*n+j]);
printf("矩阵如下:\n");
for(i=0;in;i++)
{
for(j=0;jn;j++)
printf("%d ",p[i*n+j]);
printf("\n");
}
s=Fun(p,n);
printf("该矩阵对角线数字之和为:%d\n",s);
free(p);
}
int Fun(int *p,int n)
{
int i,j,s=0;
for(i=0;in;i++)
for(j=0;jn;j++)
if(i==j||i+j==n-1)
s+=p[i*n+j];
return s;
}
----------------------------------------------------
第二题:
这个是按照提示做的,你看看
#include stdio.h
float htoi(char str[]);
void main()
{
char str[10];
float n;
printf("请输入一个十六进制数:");
scanf("%s",str);
n=htoi(str);
printf("它对应的十进制数为:%.0f\n",n);
}
float htoi(char str[])
{
float m,n=0;
int i=0,j,k,a[10];
while(str[i]!='\0')
{
if(str[i]='0'str[i]='9')
a[i]=str[i]-48;
if(str[i]='A'str[i]='F')
a[i]=str[i]-55;
i++;
}
for(j=0;ji;j++)
{
m=a[j];
for(k=j;ki-1;k++)
m=m*16;
n=n+m;
}
return n;
}
多半是hex to int 的简写,应该是十六进制的字符串转成十进制整型数字的函数名
int htoi(const char *s)
{
if( !s )return 0;
if( *s == '0' )
{
s++;
if( *s == 'x' || *s == 'X' )s++;
}
int n = 0;
while( *s )
{
n = 4;
if( *s = '9' )
n |= ( *s 0xf );
else
n |= ( (*s 0xf) + 9 );
s++;
}
return n;
}
int main(int argc, char* argv[])
{
printf("%x\n", htoi("0xa"));
printf("%x\n", htoi("0xab"));
printf("%x\n", htoi("0xabc"));
printf("%x\n", htoi("0x0a0b"));
printf("%x\n", htoi("a"));
printf("%x\n", htoi("ab"));
printf("%x\n", htoi("abc"));
printf("%x\n", htoi("12ab"));
return 0;
}
#include "stdio.h"
#include "string.h"
int translat(char c)
{
if(c='9'c='0') return c-'0';
if(c='a' c='f') return c-87;
if(c='A' c='F') return c-55;
return -1;//其它字符返回-1
}
int Htoi(char *str)
{
int length=strlen(str);
if(length==0) return 0;
int i,n=0,stat;
for(i=0;ilength;i++)
{
stat=translat(str[i]);//防错处理
if(stat=0) n=n*16+stat;
}
return n;
}
void main()
{
char Hex[20];
printf("Input Num at Hexadecimal:");
gets(Hex);
printf("%s=%d",Hex,Htoi(Hex));
}