當前位置:ag真人国际官网-ag旗舰厅官方网站 » 編程語言 » 經典矩陣c語言

經典矩陣c語言-ag真人国际官网

發布時間: 2024-11-19 08:56:23

① 用c語言輸出以下矩陣 12345 23451 34512 45123 51234

#include

voidmain()
{
inti,j,k,m;
for(i=1;i<=5;i )
{
j=0;
for(k=0;k<=5;k )
{
m=((i j)%6);
if(m>0)
printf("%d",m);
j ;
}
printf(" ");
}
}

(ps: 望採納)

② c語言矩陣怎麼寫

方法1:直接定義10*10的數組,讀取全部數據,再根據選擇的行列數列印輸出部分數據。

方法2:通過文件流指針的移動,跨過不需要的內容。(這里控制文件流指針可利用ftell和fseek函數來移動指定位元組數)我是利用fscanf讀取需要的內容,遇到需要跳行就用fgets來跳過。(注意常量參數根據自己需求修改)。

說明:邊讀取邊列印輸出,就不需要變數存儲。我的代碼是把讀取出來的內容存放在三維數組中(文件內容你沒指定,如是單純數字,二維數組即可,我是作為字元串處理,故用三維數組。),數組是根據實際大小,動態申請,寫成兩個獨立函數。

下面是代碼:

#include

#include

#include

#define maxr 10//文件中矩陣最大行

#define maxc 10//文件中矩陣最大列

#define ms 3//矩陣中元素字元串最大字元數(包含結束符號,不可小於實際內容)

#define mbuf 100//文件中一行最大字元數,可設置大一點

char ***getmem(int r,int c,int len);//動態申請一個三維數組

void freemem(char ***datas,int r,int c);//釋放數組空間

void showdatas(char ***datas,int r,int c);//列印輸出結果

int main()

{

int r=maxr 1,c=maxc 1,i=0,j=0;

char ***datas=null,str[3],buf[mbuf];

file *fp=null;

printf("請輸入要獲取的行數和列數: ");

while(r<0 || r>maxr || c<0 || c>maxc)scanf("%d%d",&r,&c);

datas=getmem(r,c,ms);

fp=fopen("c:\test.data","r");

if(!fp) return 1;

while(fscanf(fp,"%s",str)!=-1)

{

if(i

if(i==c)

{

if(!fgets(buf,sizeof(buf),fp)) break;

i=0,j ;

}

if(j==r) break;

}

showdatas(datas,r,c);

freemem(datas,r,c);

return 0;

}

void showdatas(char ***datas,int r,int c)

{

int i,j;

for(i=0;i

for(j=0;j

printf("%s ",datas[i][j]);

printf(" ");

}

void freemem(char ***datas,int r,int c)

{

int i,j;

if(!datas)

{

for(i=0;i

for(j=0;j

free(datas[i][j]);

free(datas);

}


}

char ***getmem(int r,int c,int len)

{

int i,j;

char ***datas=null,**dr=null;

datas=(char ***)malloc(sizeof(char **)*r);

if(!datas) return null;

for(i=0;i

{

dr=(char **)malloc(sizeof(char *)*c);

if(!dr) return null;

else

{

for(j=0;j

{

dr[j]=(char *)malloc(sizeof(char)*len);

if(!dr[j]) return null;

}

datas[i]=dr;

}

}

return datas;

}

③ c語言程序編寫 輸入一個4×3的整數矩陣,輸出其中最大值,最小值和他們的下標(行號和列號)

#include
voidmain(){
intarr[4][3];
inti,j,min,max;

intr1=0,r2=0,c1=0,c2=0;
for(i=0;i<4;i )//輸進二維數組
for(j=0;j<3;j ){
printf("inputarr[-][-]:",i,j);
scanf("%d",&arr[i][j]);
}

max=arr[0][0];//令最大值初始化為arr[0][0]
min=arr[0][0];//令最小值初始化為arr[0][0]
printf(" --------arr[][]---------- ");//列印二維數組

for(i=0;i<4;i ){
printf(" ");
for(j=0;j<3;j )
printf("]",arr[i][j]);
}

if(arr[i][j]>max){//當arr[i][j]>max時,令max=arr[i][j],r1=i;c1=j
max=arr[i][j];
r1=i;
c1=j;

}
if(arr[i][j]min=arr[i][j];
r2=i;
c2=j;

printf(" thisismax:-,r:-,c:-",max,r1,c1);
printf(" thisismin:-,r:-,c:-",min,r2,c2);
printf(" ");
}

(3)經典矩陣c語言擴展閱讀:

c語言編程時常犯的錯誤:

1 、書寫標識符時,忽略了大小寫字母的區別

main(){int a=5;printf("%d",a);}

編譯程序把a和a認為是兩個不同的變數名,而顯示出錯信息。c認為大寫字母和小寫字母是兩個不同的字元。習慣上,符號常量名用大寫,變數名用小寫表示,以增加可讀性。

2 、忽略了變數的類型,進行了不合法的運算

代碼如下:

main(){float a,b;printf("%d",a%b);}

%是求余運算,得到a/b的整余數。整型變數a和b可以進行求余運算,而實型變數則不允許進行「求余」運算。

3 、將字元常量與字元串常量混淆

char c;

c=」a」;

在這里就混淆了字元常量與字元串常量,字元常量是由一對單引號括起來的單個字元,字元串常量是一對雙引號括起來的字元序列。

c規定以「」作字元串結束標志,它是由系統自動加上的,所以字元串「a」實際上包含兩個字元:『a』和『』,而把它賦給一個字元變數是不行的。

④ c語言編程 輸入一個3*3的矩陣,列印該矩陣,並輸出該矩陣的對角元素

#include

#definem3
#definen3

voidcreate_matrix(intmatrix[m][n],intm,intn){
inti,j;
printf("開始輸入矩陣內容(%d行%d列) ",m,n);
for(i=0;i printf("輸入第%d行的%d個元素:",i 1,n);
for(j=0;j scanf("%d",&matrix[i][j]);
}
}

voidprint_matrix(intmatrix[m][n],intm,intn){
inti,j;
for(i=0;i for(j=0;j printf("%d ",matrix[i][j]);
printf(" ");
}
}

voidprint_matrix_diagonal(intmatrix[m][n],intm,intn){
inti,j;
for(i=0;i for(j=0;j if(i==j||i j==m-1)
printf("%d ",matrix[i][j]);
else
printf(" ");
printf(" ");
}
}

intmain(void){
intmatrix[m][n];
create_matrix(matrix,m,n);
printf("====================================================== ");
printf("您輸入的矩陣為: ");
print_matrix(matrix,m,n);
printf("對角線元素為: ");
print_matrix_diagonal(matrix,m,n);
return0;
}

執行結果

⑤ c語言輸出4*5的數字矩陣 1 2 3 4 5 2 4 6 8 10 3 6 9 12 15

#include

intmain(void)
{
inti,j;
for(i=1;i<=4; i)
{
for(j=1;j<=5; j)
{
printf("-",i*j);
}
printf(" ");
}
return0;
}

⑥ c語言 關於矩陣

方法1:直接定義10*10的數組,讀取全部數據,再根據選擇的行列數列印輸出部分數據。

方法2:通過文件流指針的移動,跨過不需要的內容。(這里控制文件流指針可利用ftell和fseek函數來移動指定位元組數)我是利用fscanf讀取需要的內容,遇到需要跳行就用fgets來跳過。(注意常量參數根據自己需求修改)。

說明:邊讀取邊列印輸出,就不需要變數存儲。我的代碼是把讀取出來的內容存放在三維數組中(文件內容你沒指定,如是單純數字,二維數組即可,我是作為字元串處理,故用三維數組。),數組是根據實際大小,動態申請,寫成兩個獨立函數。

下面是代碼:

#include

#include

#include

#define maxr 10//文件中矩陣最大行

#define maxc 10//文件中矩陣最大列

#define ms 3//矩陣中元素字元串最大字元數(包含結束符號,不可小於實際內容)

#define mbuf 100//文件中一行最大字元數,可設置大一點

char ***getmem(int r,int c,int len);//動態申請一個三維數組

void freemem(char ***datas,int r,int c);//釋放數組空間

void showdatas(char ***datas,int r,int c);//列印輸出結果

int main()

{

int r=maxr 1,c=maxc 1,i=0,j=0;

char ***datas=null,str[3],buf[mbuf];

file *fp=null;

printf("請輸入要獲取的行數和列數: ");

while(r<0 || r>maxr || c<0 || c>maxc)scanf("%d%d",&r,&c);

datas=getmem(r,c,ms);

fp=fopen("c:\test.data","r");

if(!fp) return 1;

while(fscanf(fp,"%s",str)!=-1)

{

if(i

if(i==c)

{

if(!fgets(buf,sizeof(buf),fp)) break;

i=0,j ;

}

if(j==r) break;

}

showdatas(datas,r,c);

freemem(datas,r,c);

return 0;

}

void showdatas(char ***datas,int r,int c)

{

int i,j;

for(i=0;i

for(j=0;j

printf("%s ",datas[i][j]);

printf(" ");

}

void freemem(char ***datas,int r,int c)

{

int i,j;

if(!datas)

{

for(i=0;i

for(j=0;j

free(datas[i][j]);

free(datas);

}


}

char ***getmem(int r,int c,int len)

{

int i,j;

char ***datas=null,**dr=null;

datas=(char ***)malloc(sizeof(char **)*r);

if(!datas) return null;

for(i=0;i

{

dr=(char **)malloc(sizeof(char *)*c);

if(!dr) return null;

else

{

for(j=0;j

{

dr[j]=(char *)malloc(sizeof(char)*len);

if(!dr[j]) return null;

}

datas[i]=dr;

}

}

return datas;

}

熱點內容
vb資料庫數組 發布:2024-11-19 09:23:40 瀏覽:827
安卓游戲數據保存在哪裡找 發布:2024-11-19 09:22:02 瀏覽:309
解壓出來的文件亂碼 發布:2024-11-19 09:15:40 瀏覽:939
北航ftp是多少 發布:2024-11-19 09:15:32 瀏覽:821
瀏覽保存密碼如何取消 發布:2024-11-19 09:10:17 瀏覽:89
安卓怎麼關簡訊重復提醒 發布:2024-11-19 09:02:00 瀏覽:635
html與php的區別 發布:2024-11-19 09:00:53 瀏覽:193
晚安密碼多少 發布:2024-11-19 09:00:51 瀏覽:945
易語言腳本模塊 發布:2024-11-19 09:00:44 瀏覽:484
經典矩陣c語言 發布:2024-11-19 08:56:23 瀏覽:268
网站地图