知识小程序
知识小程序,请教大家
1 2 3 4 5 6 7
1 1 1
2 1 1 1
3 1
4 1 1
5
6 1 1 1
7 1 1
比方说我定义一个num[i]表示1~7行,怎样表示1(1的位置是不固定的)出现的列数,最后输出num[1]=1,4 num[2]=2,5,6 num[3]=3……依次类推
我用的
但是只能输出一个数,一行中有两个以上“1”的就不行了,请教大家了,该怎么写
------解决思路----------------------
没有,push_back 不负责输出,只负责把各行中的 1 分别管理起来,全部存储后看起来像这样,每一个 num[i] 类似一个数组。
num[1]=1,4 num[2]=2,5,6 num[3]=3…
楼主还是先把基础打牢吧,虽说初学问题多可以理解,但技术不到位也不能霸王硬上弓啊。
------解决思路----------------------
仅供参考:
1 2 3 4 5 6 7
1 1 1
2 1 1 1
3 1
4 1 1
5
6 1 1 1
7 1 1
比方说我定义一个num[i]表示1~7行,怎样表示1(1的位置是不固定的)出现的列数,最后输出num[1]=1,4 num[2]=2,5,6 num[3]=3……依次类推
我用的
for(int h=1;h<=7;h++)
{
if(MyExcel.GetCellString(i,h)=="1")
{
num[i] = MyExcel.GetCellString(0,h);
}
}
但是只能输出一个数,一行中有两个以上“1”的就不行了,请教大家了,该怎么写
------解决思路----------------------
没有,push_back 不负责输出,只负责把各行中的 1 分别管理起来,全部存储后看起来像这样,每一个 num[i] 类似一个数组。
num[1]=1,4 num[2]=2,5,6 num[3]=3…
楼主还是先把基础打牢吧,虽说初学问题多可以理解,但技术不到位也不能霸王硬上弓啊。
------解决思路----------------------
仅供参考:
// 1 2 3 4 5 6 7
//1 1 1
//2 1 1 1
//3 1
//4 1 1
//5
//6 1 1 1
//7 1 1
//
//比方说我定义一个num[i]表示1~7行,
//怎样表示1(1的位置是不固定的)出现的列数,
//最后输出num[1]=1,4 num[2]=2,5,6 num[3]=3……依次类推
#include <stdio.h>
char s[8][26]={
" 1 2 3 4 5 6 7",
"1 1 1 ",
"2 1 1 1 ",
"3 1 ",
"4 1 1 ",
"5 ",
"6 1 1 1 ",
"7 1 1",
};
int num[7],y,x,f;
int main() {
for (y=0;y<7;y++) num[y]=0;
for (y=0;y<7;y++) {
for (x=0;x<7;x++) {
if (s[y+1][6+x*3]=='1') num[y]
------解决思路----------------------
=1<<x;
}
}
for (y=0;y<7;y++) {
printf("num[%d]=",y+1);
f=1;
for (x=0;x<7;x++) {
if ((1<<x)&num[y]) {
if (f) {
printf("%d",x+1);
f=0;
} else {
printf(",%d",x+1);
}
}
}
printf("\n");
}
return 0;
}
//num[1]=1,4
//num[2]=2,5,6
//num[3]=3
//num[4]=5,6
//num[5]=
//num[6]=1,3,4
//num[7]=6,7
//