输入一个正整数n (1<n<=10),生成 1个 n*n 方阵 求出对角线之和

#define  _CRT_SECURE_NO_WARNINGS

#include <Windows.h>
#include <stdio.h>
#include <stdlib.h>

void main() {

    int n = 0;
    scanf("%d", &n);

    int a[50][50] = { 0 };
    int result = 0;
    for (int i = 0; i < n * n; i++) {
        a[i / n][i % n] = i + 1;
        if ((i % n) == 0){
            result += a[i / n][i % n] + (i / n);
        }
    }
    for (int i = 0; i < n; i++) {
        for (int j = 0; j < n; j++)
        {
            printf("%-6d", a[i][j]);
        }
        printf("\n");
    }
    printf("result=%d", result);

    getchar();
    getchar();
}

时间: 2024-10-05 04:27:41

输入一个正整数n (1<n<=10),生成 1个 n*n 方阵 求出对角线之和的相关文章

输入一个正整数repeat(0&lt;repeat&lt;10),做repeat次下列运算:读入2个正整数m和n(1&lt;=m,n&lt;=1000),输出m和n之间所有满足各位数字的立方和等于它本身的数。

代码: 1 import java.util.*; 2 public class Main { 3 public static void main (String [] args) { 4 int repeat,m,n; 5 Scanner s=new Scanner(System.in); 6 repeat=s.nextInt(); 7 for(int i=1;i<=repeat;i++) { 8 m=s.nextInt(); 9 n=s.nextInt(); 10 for(int j=m;j

[华为机试]输入一个正整数,输出2000年1月1日经过该整数天后的日期.

//输入一个正整数,输出2000年1月1日经过该整数天后的日期.已测试,输入值可以为0~1095727 //如,100天后,日期为2000 4 10 #include<stdio.h> #define MAX_YEAR 5000//年数可以从2000一直到4999年. //函数功能:求解第year年共有多少天 int day_in_year(int year) { if (((year % 4 == 0) && (year % 100 != 0)) || (year % 400

任意输入一个正整数,求出其各位数字之和

//任意输入一个正整数,求出其各位数字之和 #include <stdio.h>void main(){    int num,s=0;     printf("请任意输入一个正整数:\n");     scanf("%d",&num);     while(num!=0)     {         s=num%10+s;//没有赋值的操作,在编写程序时没有意识到这一点         num=num/10;     } printf(&quo

输入一个正整数,求它各位数的数字之和

class Test{ public static void main(String[] args){ int iSum = 0; Scanner scan = new Scanner(System.in); System.out.print("请输入一个正整数:"); int iNum = scan.nextInt(); int iC = iNum; while(iNum % 10 == 0) iNum = iNum / 10; while(iNum % 10 > 0){ in

输入一个正整数n,返回一个最小正整数m(m至少是2位数),使得m的各位乘积等于n,例如输入36,输出49,输入100,输出455,对于某个n不存在这样的m,请返回-1。

输入一个正整数n,返回一个最小正整数m(m至少是2位数),使得m的各位乘积等于n,例如输入36,输出49,输入100,输出455,对于某个n不存在这样的m,请返回-1. package hope20141002_01; import java.util.*; public class JingDong { public static void main(String[] args) { // TODO Auto-generated method stub System.out.println("

输入一个正整数n,计算出[0,n]这些整数中的二进制数没有连续3个1的数字有多少

输入一个正整数n,计算出[0,n]这些整数中的二进制数没有连续3个1的数字有多少? 例子:输入数字9,则输出结果位9.因为[0-9]中,只有数字7有连续的三个'1'出现,别的都没有,所以一共有9个数字满足要求. 分析:这个题目与求解一个正整数中'1'的个数有点类似,就是进行一些循环处理. 代码如下: 1 #include <iostream> 2 using namespace std; 3 int main() 4 { 5 int n,num_1=0,k=0; 6 cin>>n;

java循环练习:用户输入一个10以内的数字,通过运算求出该数字的阶乘

package practiceGO; import java.util.Scanner; /*  * 4.用户输入一个10以内的数字,通过运算求出该数字的阶乘  */ public class Cto { public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.println("请输入一个10以内的数字,由系统计算阶乘"); int num = sc.nextIn

输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字的最小的一个

/** * @Version 1.0.0 * 输入一个正整数数组,把数组里所有数字拼接起来排成一个数, * 打印能拼接出的所有数字的最小的一个.例如输入{3,32,321,4},则打印最小的数字是 * 321323 * * 其实就是一次排序,只是比较大小的方式与数值比较有所不同 * 这里采用冒泡排序的方式 */public class Pro33 { @MyAnswer public static void f(int array[]){ for(int i=0;i<array.length-1

提示用户输入一个正整数n,计算1+2+3+…+n的和

/* */ #include <stdio.h> int main() { // 1.提示输入 printf("请输入一个正整数:\n"); // 2.接收输入 // 定义变量保存用户输入的整数 int n; scanf("%d", &n); if (n<=0) { printf("非法输入\n"); return 0; } // 3.计算 // (1 + n) * n / 2; // 定义变量保存和 int sum =