|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
以下是我个人的思路
#include <stdio.h>
#define MAX 1024
int main()
{
int count = 0;//计算输入了多少个数
int a[MAX] = {0};
printf("请输入数字\n");
int i;
int j;
int row;//矩阵的rank
for (i = 0; i < MAX; i++)
{
if (getchar() != '\n')
{
a = getchar();
count++;
}
else
{
break;
}
}
printf("总共输入%d个数字\n", count);
for(j = 0; j*j <= count; j++)
{
row = j;
}
printf("矩阵是%dx%d的\n", row, row);
printf("矩阵如下\n");
int m, n;
int k = 0;
for(m = 0; m <row; m++)
{
for(n = 0; n < row; n++)
{
printf("%d", a[k]);
k++;
}
printf("\n");
}
return 0;
}
试了两个输入,结果很奇怪
输入1
1 2 3 4 5 6 7 8 9
总共输入9个数字
矩阵是3x3的
矩阵如下
323232
323232
323210
这里要按两次回车才会继续执行程序
输入的总数和矩阵的大小是正确的,但是最后矩阵的输出不符合预期
输入2
请输入数字
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
总共输入19个数字
矩阵是5x5的
矩阵如下
3232323232
3232323248
4932504932
524932540
00000
虽然只要按一次回车就够了,但是输出都是错误的
也试了其他输入都不如人意
代码很乱,看了很纠结
- #include <stdio.h>
- #define MAX 1024
- int main()
- {
- int count = 0;//计算输入了多少个数
- int c;
- int a[MAX] = {0};
- int i;
- int row;//矩阵的rank
- printf("请输入数字\n");
- while((c=getchar()) != '\n')
- {
- if (c!=32) // 不是空格
- {
- a[count] = c; // 存入数组
- count++;
- }
- }
- printf("总共输入%d个数字\n", count);
- for(i = 0; i*i <= count; i++)
- {
- row = i;
- }
- printf("矩阵是%dx%d的\n", row, row);
- printf("矩阵如下\n");
- for(i = 0; i<count; i++)
- {
- printf("%c ", a[i]);
- if ((i+1)%row == 0)
- {
- printf("\n");
- }
- }
- return 0;
- }
复制代码
|
|