c語言輸入矩陣
❶ c語言怎麼輸入矩陣
c語言矩陣分為兩種:
第一種方法是動態的申請矩陣存儲空間,該方法的好處有以下兩點:
1.能夠動態的申請和釋放存儲空間;
2.對於將矩陣作為函數返回值的情況,該方法具有獨特的優勢。
❷ c語言 從鍵盤輸入一個4*4整數矩陣
#define N 4
void main()
{
int a[N][N];
int i,j,max,p,q;
printf("輸入4*4矩陣:\n");
for(i=0;i<N;i++)
for (j=0;j<N;j++)
scanf("%d",&a[i][j]);
printf("輸入的矩陣為:\n");
for(i=0;i<N;i++)
{
for(j=0;j<N;j++) printf("%4d",a[i][j]);
printf("\n");
}
max=a[1][0];
p=1;q=0;
for(i=1;i<N;i++)
for(j=0;j<i;j++)
if(a[i][j]>max)
{
max=a[i][j];
p=i;q=j;
}
a[q][p]=max;
printf("處理以後的矩陣為:\n");
for(i=0;i<N;i++)
{
for(j=0;j<N;j++) printf("%4d",a[i][j]);
printf("\n");
}
}
❸ c語言程序編寫 輸入一個4×3的整數矩陣,輸出其中最大值,最小值和他們的下標(行號和列號)
#include<stdio.h>
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[%2d][%2d]:",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("%5d",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]<min時,令min=arr[i][j],r2=i;c2=j
min=arr[i][j];
r2=i;
c2=j;
printf("
Thisismax:%2d,r:%2d,c:%2d",max,r1,c1);
printf("
Thisismin:%2d,r:%2d,c:%2d",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列矩陣的各個元素的值
請你詢問老師,這個題目本身是出錯了的,因為在已有部分的基礎上,是無法實現指定的功能的。必須要把左圖中代碼的第三行
void fun(int a[3][3])
修改為:
int fun(int a[3][3])
才行的。
再填充以下內容:
❺ c語言輸入矩陣
scanf("%d,%d",&i,&j); //你輸入時要帶","比如 5,6 ,是"%d,%d"要求的,你可以去掉這個逗號然後輸入 5 6 也行
❻ C語言程序輸入一個4行4列的整型矩陣,顯示這個矩陣的最大值、主對角線之和、輔對角線乘積及轉置矩陣
話不多說上代碼,轉置不知道你想轉什麼樣子的,就隨便轉了一些
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
void Advert(int (*PArr)[4])
{
int Temp=0;
for(int i=0;i<4;i++)
{
for(int j=i;j<4;j++)
{
Temp=PArr[i][j];
PArr[i][j]=PArr[j][i];
PArr[j][i]=Temp;
}
}
}
int main(void)
{
int Arr[4][4]={0};
// 初始化數組
srand((unsigned int)time(NULL));
for(int i=0;i<4;i++)
{
for(int j=0;j<4;j++)
{
Arr[i][j]=rand()%256;
}
}
//列印數組
for(int i=0;i<4;i++)
{
for(int j=0;j<4;j++)
{
printf("%-8d",Arr[i][j]);
}
puts("");
}
puts("");
int MajorDiagonalSum=0;
int SubdiagonalMul=1;
int MaxVal=Arr[0][0];
//列印數組
for(int i=0;i<4;i++)
{
for(int j=0;j<4;j++)
{
if(Arr[i][j]>MaxVal)
{
MaxVal=Arr[i][j];
}
if(i==j)
{
MajorDiagonalSum+=Arr[i][j];
printf("%-8d",Arr[i][j]);
}
else if(4-i-1==j){
printf("%-8d",Arr[i][j]);
SubdiagonalMul*=Arr[i][j];
}
else{
printf("%-8s"," ");
}
}
puts("");
}
puts("");
printf("最大值:%d\n主對角線只和:%d\n副對角線乘積:%d\n",MaxVal,MajorDiagonalSum,SubdiagonalMul);
puts("");
Advert(Arr);
//列印數組
for(int i=0;i<4;i++)
{
for(int j=0;j<4;j++)
{
printf("%-8d",Arr[i][j]);
}
puts("");
}
puts("");
return 0;
}
❼ c語言如何輸入矩陣
c語言輸入矩陣方法:先自己輸入階數,再輸入各個元素。C語言是一門面向過程、抽象化的通用程序設計語言,廣泛應用於底層開發。C語言能以簡易的方式編譯、處理低級存儲器。C語言是僅產生少量的機器語言以及不需要任何運行環境支持便能運行的高效率程序設計語言。盡管C語言提供了許多低級處理的功能,但仍然保持著跨平台的特性,以一個標准規格寫出的C語言程序可在包括一些類似嵌入式處理器以及超級計算機等作業平台的許多計算機平台上進行編譯。
更多關於c語言如何輸入矩陣,進入:https://m.abcgonglue.com/ask/c1a0aa1615836138.html?zd查看更多內容
❽ C語言,輸入一個矩陣,找出所在行上最大,列上最小的數。(可能沒有) 可能定義出錯,求大蝦指教!!!!
以下是求每一行上最大、每一列上最小的程序:
#include<stdio.h>
main()
{
inti,j,k,l,min,max;
printf("請輸入矩陣的規格: ");
scanf("%d,%d",&i,&j);
printf("這是一個%d乘%d的矩陣 ",i,j);
inta[i][j];
printf("請輸入該矩陣: ");
for(k=0;k<i;k++)
for(l=0;l<j;l++)
scanf("%d",&a[k][l]);
for(k=0;k<i;k++)
{
max=a[k][0];
for(l=0;l<j;l++)
{
if(a[k][l]>max)
max=a[k][l];
}
printf("第%d行的最大值%d ",k+1,max);
}
for(l=0;l<j;l++)
{
min=a[0][l];
for(k=0;k<i;k++)
{
if(a[k][l]<min)
min=a[k][l];
}
printf("第%d列的最小值%d ",l+1,min);
}
}
不過題目的意思應該不是這樣的。應該是「找出所在行上最大,同時又是列上最小的數」。
#include<stdio.h>
main()
{
inti,j,k,l,min,max,t1,t;
printf("請輸入矩陣的規格: ");
scanf("%d,%d",&i,&j);
printf("這是一個%d乘%d的矩陣 ",i,j);
inta[i][j];
printf("請輸入該矩陣: ");
for(k=0;k<i;k++)
for(l=0;l<j;l++)
scanf("%d",&a[k][l]);
for(k=0;k<i;k++)
{
max=a[k][0];
for(l=0;l<j;l++)
{
if(a[k][l]>max)
{
max=a[k][l];
t1=l;
}
}
t=1;
for(l=0;l<i;l++)
{
if(a[l][t1]<max)
{
t=0;
}
}
if(t)
printf("第%d行%d列的值%d為行上最大、列上最小 ",k+1,t1+1,max);
}
}