第一題:
創(chuàng)新互聯(lián)公司主營淇濱網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營網(wǎng)站建設(shè)方案,成都app軟件開發(fā),淇濱h5重慶小程序開發(fā)搭建,淇濱網(wǎng)站營銷推廣歡迎淇濱等地區(qū)企業(yè)咨詢
我用的是動態(tài)二維數(shù)組,你可以試著從鍵盤輸入你想要求的任何數(shù)組
程序如下:
#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("請輸入數(shù)據(jù):");
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("該矩陣對角線數(shù)字之和為:%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("請輸入一個十六進制數(shù):");
scanf("%s",str);
n=htoi(str);
printf("它對應(yīng)的十進制數(shù)為:%.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 的簡寫,應(yīng)該是十六進制的字符串轉(zhuǎn)成十進制整型數(shù)字的函數(shù)名
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));
}