1.给定一个n×n的方阵,本题要求计算该矩阵除副对角线、最后一列和最后一行以外的所有元素之和。副对角线为从矩阵的右上角至左下角的连线。
输入格式:
输入第一行给出正整数n(1<n≤10);随后n行,每行给出n个整数,其间以空格分隔。
输出格式:
在一行中给出该矩阵除副对角线、最后一列和最后一行以外的所有元素之和。
输入样例:
4
2 3 4 1
5 6 1 1
7 1 8 1
1 1 1 1
输出样例:
35
(代码截图+运行结果截图):
#include <stdio.h>
#include <stdlib.h>
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
int main() {
int sum=0,n,i,j,g,h,l;
scanf("%d",&n);
int huang[n][n];
for(i=0;i<n;i++){
for(j=0;j<n;j++){
scanf("%d",&huang[i][j]);
sum=sum+huang[i][j];
}
}
for(g=1;g<n;g++){
sum=sum-huang[g][n-1];
}
for(h=0;h<n;h++){
sum=sum-huang[h][n-h-1];
}
for(l=0;l<n;l++){
sum=sum-huang[n-1][l];
}
sum=sum+huang[n-1][0]+huang[n-1][n-1];
printf("%d",sum);
return 0;
}
2.本题要求编写程序,找出给定的N个数中的最小值,并将其与第一个数交换,最后输出交换后的序列。题目保证最小值是唯一的。
输入格式:
输入在第一行中给出一个正整数N(1≤n≤10),第二行给出N个整数,数字间以空格分隔。
输出格式:
在一行中顺序输出交换后的序列,每个整数后跟一个空格。
输入样例:
5
8 2 5 1 4
输出样例:
1 2 5 8 4
(代码截图+运行结果截图):
#include<stdio.h>
int main()
{
int n, index = 0, i, temp, a[10];
scanf_s("%d", &n);
for (i = 0; i < n; i++) {
scanf_s("%d", &a[i]);
}
for (i = 1; i < n; i++) {
if (a[i] < a[index]) {
index = i;
}
}
temp = a[index]; //这一部分将最小值与第一个数交换
a[index] = a[0];
a[0] = temp;
for (i = 0; i < n; i++) {
printf("%d ", a[i]);
}
return 0;
}
3.输入10个无序的整数,用选择法对10个整数按升序排序。注意:要求排序只排3轮。
输入格式:
在一行中输入10个用空格间隔的无序整数。
输出格式:
在一行中输出变化后的数组,每个整数输出占5列。
输入样例:
8 5 2 6 7 4 1 9 12 10
输出样例:
1 2 4 6 7 5 8 9 12 10
(代码截图+运行结果截图):
#include<stdio.h>
int main()
{
int i, index, k, temp;
int a[10];
for(i = 0;i<10;i++)
{
scanf("%d", &a[i]); //将输入的数依次赋给数组a(从a[0]~a[9])
}
/*对这10个数进行排序*/
for(k = 0;k<3;k++) //排三次(循环三次)
{
index = k; //index存放最小值所在的下标
for(i = k+1;i<10;i++) //寻找最小值所在的下标
{
if(a[i]<a[index]) //如果小于所设置的最小值,则进行交换
{
index = i;
}
}
temp = a[index]; //最小元素与下标为K的元素进行交换
a[index] = a[k];
a[k] = temp;
}
for(i = 0;i<10;i++)
{
printf("%5d", a[i]); //输出排序后结果
}
return 0;
}
4.从键盘输入10个数,编程将其按从小到大的顺序排列后再输出。(使用冒泡法)
输入格式:
输入10个数。
输出格式:
输出排序后的10个数,每个数输出后跟一个空格,全部输出完成后换行。
输入样例:
在这里给出一组输入。例如:
12 54 -33 75 30 -22 88 -33 -83 22
输出样例:
在这里给出相应的输出。例如:
-83 -33 -33 -22 12 22 30 54 75 88
(代码截图+运行结果截图):
#include <stdio.h>
int main()
{
int a[10];
int i,j;
int temp;
for(i=0;i<10;i++)
{
scanf("%d",&a[i]);
}
for(i=0;i<9;i++)
{
for(j=0;j<9-i;j++)
{
if(a[j]>a[j+1])
{
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}
}
for(i=0;i<10;i++)
{
printf("%d ",a[i]);
}
printf("\n");
return 0;
}
5.输入一个字符串,对该字符串进行逆序,输出逆序后的字符串。
输入格式:
输入在一行中给出一个不超过80个字符长度的、以回车结束的非空字符串。
输出格式:
在一行中输出逆序后的字符串。
输入样例:
Hello World!
输出样例:
!dlroW olleH
(代码截图+运行结果截图):
#include<stdio.h>
int main()
{
char str[81];
gets(str);
int len = strlen(str);
for(int i=len-1;i>=0;i--){
printf("%c",str[i]);
}
return 0;
}