Description
有一個n行n列的二維數組,n以及數組中的所有數據均由鍵盤輸入,求主對角線之上(右上方)所有數據之和
Input
輸入n(2<=n<=10)的值,以及二維數組所有元素的值
Output
輸出題目要求的數值
Sample Input
Sample Output
#include<stdio.h>
int main()
{
int n;
int i,j,a[10][10],sum=0;
scanf("%d",&n);
for(i=0;i<n;i++)
for(j=0;j<n;j++)
scanf("%d",&a[i][j]);
for(i=0;i<n;i++)
for(j=i+1;j<n;j++)
sum+=a[i][j];
printf("%d\n",sum);
return 0;
}
Description
由鍵盤給一個3行4列的二維數組輸入數據,然后找出每行中的最大數及其位置
Input
輸入12個整數
Output
輸出每行的最大數及其行列號
Sample Input
Sample Output
#include<stdio.h>
int main()
{
int a[3][4],i,j,m,p,q;
for(i=0;i<3;i++)
for(j=0;j<4;j++)
scanf("%d",&a[i][j]);
for(i=0;i<3;i++)
{
m=a[i][0];
p=i+1;
q=1;
for(j=0;j<4;j++)
if(a[i][j]>m)
{
m=a[i][j];
p=i+1;
q=j+1;
}
printf("%d:%d,%d\n",m,p,q);
}
return 0;
}
Description
鍵盤輸入9個整數存入3行3列的二維數組中,請找出最大值和最小值(最大值和最小值都只有一個),並將它們分別交換到各自對稱的位置。若最大數或最小數在主對角線上,則不需要交換,在原位置不動。
解釋:
1、主對角線:下面的數據中,“1,5,9”所處的一條線就是主對角線。
1 2 3
4 5 6
7 8 9
2、所謂對稱位置,是相對於主對角線而言的。例如:上面9個數中,2和4對稱,6和8對稱,3和7對稱
Input
輸入9個整數
Output
輸出交換后數組中的數據,共三行,每行三個數據,相鄰兩個數據之間用1個空格隔開
#include<stdio.h>
int main()
{
int a[3][3],i,j,max,min;
int k,s,m,n,p,q;
for(i=0;i<3;i++)
for(j=0;j<3;j++)
scanf("%d",(*(a+i)+j));
max=min=a[0][0];
for(i=0;i<3;i++)
{ for(j=0;j<3;j++)
{
if(a[i][j]>=max)
{
max=a[i][j];
k=i;
s=j;
}
if(a[i][j]<=min)
{
min=a[i][j];
m=i;
n=j;
}
}
}
if((k!=n)||(s!=m))
{
if(k!=s)
{
p=a[k][s];
a[k][s]=a[s][k];
a[s][k]=p;
}
if(m!=n)
{
q=a[m][n];
a[m][n]=a[n][m];
a[n][m]=q;
}
}
else if((k==n)&&(s==m))
{
p=a[k][s];
a[k][s]=a[s][k];
a[s][k]=p;
}
for(i=0;i<3;i++)
{
for(j=0;j<2;j++)
printf("%d ",*(*(a+i)+j));
printf("%d",*(*(a+i)+2));
printf("\n");
}
return 0;
}
Description
有兩個分別是a*b(a行b列)和b*c(b行c列)的矩陣,相乘后是一個a*c的矩陣,a,b,c及矩陣數據均由鍵盤輸入,a,b,c均不超過10,請編程輸出相乘后的矩陣。
下面是2*3矩陣和3*2矩陣相乘的一個例子:
1 2 3 1 2 1*1+2*3+3*5 1*2+2*4+3*6 22 28
* 3 4 = =
4 5 6 5 6 4*1+5*3+6*5 4*2+5*4+6*6 49 64
Input
Output
Sample Input
Sample Output
#include <stdio.h>
int main()
{
int m[10][10],n[10][10],k[10][10];
int a,b,c,i,j,t;
scanf("%d %d %d",&a,&b,&c);
for(i=0;i<a;i++)
{
for(j=0;j<b;j++)
{
scanf("%d",&m[i][j]);
}
}
for(i=0;i<b;i++)
{
for(j=0;j<c;j++)
{
scanf("%d",&n[i][j]);
}
}
for(i=0;i<a;i++)
{
for(j=0;j<c;j++)
{
k[i][j]=0;
}
}
for(i=0;i<a;i++)
{
for(j=0;j<c;j++)
{
for(t=0;t<b;t++)
{
k[i][j]=k[i][j]+m[i][t]*n[t][j];
}
}
}
for(i=0;i<a;i++)
{
for(j=0;j<c-1;j++)
{
printf("%d ",k[i][j]);
}
printf("%d\n",k[i][j]);
}
return 0;
}
Description
鍵盤輸入一個3行4列的整型二維數組a[3][4]的數據,找出鞍點。所謂鞍點,就是該位置上的數,在它所在行最大(沒有跟它相等的數),在它所在列最小(沒有跟它相等的數)。
注意:也可能沒有鞍點。若沒有鞍點,輸出:“not exist”
Input
輸入二維數組的所有數據
Output
輸出鞍點,或輸出not exist
Sample Input
Sample Output
Sample Output
Description
鍵盤輸入一個N*N的矩陣,將其轉置(行變列,列變行)
如:
1 2 3
4 5 6
7 8 9
轉置后:
1 4 7
2 5 8
3 6 9
請在下面程序框架的基礎上編程:
#include <stdio.h>
int main()
{
int n,i,j,t,a[100][100];
scanf("%d",&n);
for(i=0;i<n;i++)
for(j=0;j<n;j++)
scanf("%d", &a[i][j]);
/********************************************************/
//只允許在此填寫代碼,其他任何地方不得修改,也不允許定義任何變量或數組
/********************************************************/
for(i=0; i<=n-1;i++)
{
for(j=0;j<=n-1;j++)
printf("%5d", a[i][j]) ;
printf("\n");
}
return 0;
}
Input
鍵盤輸入一個n(1<=n<=100),代表行數和列數,接着輸入n行數據,每行n個
Output
輸出轉置后的數據,每個數據至少占5格
Sample Input
Sample Output
#include <stdio.h>
int main(void)
{
int n,i,j,t,a[100][100];
scanf("%d",&n);
for(i=0;i<n;i++)
for(j=0;j<n;j++)
scanf("%d", &a[i][j]);
for(i=0;i<n;i++)
for(j=0;j<i;j++)
{
t=a[i][j];
a[i][j]=a[j][i];
a[j][i]=t;}
for(i=0;i<=n-1;i++)
{
for(j=0;j<=n-1;j++)
printf("%5d",a[i][j]);
printf("\n");
}
return 0;
}
Description
設有如下代碼:
int main()
{
/*****************************************************/
//只允許在這里添加代碼,后面的代碼不允許做任何改動或刪除,否則不得分
/*****************************************************/
printf("%s", s);
return 0;
}
運行時,從鍵盤輸入一個字符串(不超過50個字符),將其逆序存放,然后輸出。如:若輸入ab cd,則輸出應為:dc ba
Input
輸入一個字符串
Output
輸出逆序存放后的字符串
Sample Input
Sample Output
Description
鍵盤輸入一個字符串(可以有空格)存入數組,然后統計數字、字母和空格的出現個數
本題必須用數組求解
Input
字符串(不超過50字符)
Output
數字、字母、空格的個數,每個一行
Sample Input
Sample Output
Description
鍵盤輸入三行字符,每行均以回車結束,每行都不超過20個字符(不含回車)。統計每行中大寫字母、小寫字母、空格以及數字的個數
提醒:本題目不要用getchar()一個一個地讀字符
Input
輸入三行字符
Output
輸出每行中4種字符的個數
Sample Input
Sample Output
Description
鍵盤輸入一個不超過20字符的字符串,將最后m個字符移動到最前面,前面的字符后移
Input
輸入一個字符串和一個整數
Output
輸出移動后的字符串
Sample Input
Sample Output
Description
鍵盤輸入一個不超過20字符的字符串,若含有空格(可能不止一處),將所有空格去掉,輸出刪除空格之后的串。
主函數框架如下,你只需提交所缺代碼即可,前后兩部分代碼已在后台。
#include <stdio.h>
int main()
{
char s[21];
int i,j,k;
gets(s);
/*************************************/
//在此編寫代碼並提交該部分代碼
/*************************************/
puts(s);
return 0;
}
Input
輸入一個字符串
Output
輸出處理后的字符串
Sample Input
Sample Output
Description
鍵盤輸入4個字符串(都不超過20個字符),找出最大的字符串。所謂最大,是指按字典順序排序最大,如:good morning比good afternoon大,因為m比a大,又如:abc比abC大,因為c比C大(ascii碼大)
Input
輸入四個字符串
Output
輸出最大字符串的內容