‘壹’ 在c语言中,如何把一组数进行分组处理!比如1,2,3,4,5,6,7。我想把他们分成两组来处理!怎么分求
你的意思是数有7个,不能平均分成两组吗?
那么有几种方案,看你具体是要进行什么运算。
可以忽略中间一个即4,或者忽略最后一个即7
或者把4算到两组中,即分成1,2,3,4和4,5,6,7
如果你是不知道怎么让一组变成两组来操作,可以用指针的方法,下面演示求两组的平均数,并忽略7
int data[]={1,2,3,4,5,6,7};
int *p=&data[3];
int i;
for(i=0;i<3;i++)
data[i]=(data[i]+p[i])/2;
‘贰’ 求C语言分组程序
首先,字符串是存储在数组中的,因此,要将其分成3个字母一组是很容易的。例如0-2;3-5……这都是符合要求的。
每三个字母出现的频率,说法很模糊,我理解成是有多少个组是字母组成相同的。如果是顺序相同的才符合要求,可以采用字符库函数进行比较。如果不需要顺序相同,那么就要挨个比较,相同的话进行计算,并将令一个相同的做上标记,例如赋值位0,就是采用暴力破解的办法。(人工录入,有疑问可以问,希望有帮助能够采纳、点赞!)
‘叁’ 用c语言求解元素分组问题问题
用数学模型模拟下,然后写出了
‘肆’ C语言如何实现分组统计
/*通过一次循环分别按性别和年龄统计人数
(c)hele2013/03/04*/
#include<stdio.h>
#defineN8//N是统计人群的最小年龄
#defineM20//年龄跨度设为20岁
enumyear{y1=N,y2,y3,y4,y5,y6,y7,y8,y9,y10,y11,y12,y13,y14,y15,y16,y17,y18,y19,y20};
structhum{
yearold;
intnum1[M];
charmale[2];
intnum2[2];
}hum;//构建的结构体,统计年龄跨度20,2种性别的人群
voiddisplay()
{inti;
for(i=0;i<M;i++)
{
printf("old:%d :%d ",N+i,hum.num1[i]);
}
for(i=0;i<2;i++)
printf("male:%c :%d ",hum.male[i],hum.num2[i]);
}
voidinitial()
{hum.male[0]='0';
hum.male[1]='1';
}
intmain()
{initial();
charc[8];
FILE*fp;
if((fp=fopen("in.txt","r"))==NULL)
{
printf("Can'topenin.txt");
return1;
}
while(!feof(fp))
{fscanf(fp,"%s",c);
//读年龄
intold;
fscanf(fp,"%d",&old);
hum.old=(year)old;//强制类型转换,使hum.old是old的值
hum.num1[old-y1]++;//countnumberofeveryyearold
//读性别
intmale;
fscanf(fp,"%d",&male);
hum.num2[male]++;//countnumberofevery性别
}
display();
return0;
}
说明:
1.仅供参考
2.注意“in.txt"文件格式,其文件结尾不要有空白行,正文只有姓名、年龄、性别三种,用空格隔开,如图
3.尚有缺陷,没有使用_wchar,对特定中文名字会统计错误,所以尽量用英文名字。
‘伍’ c语言,分组
int i,j,group;
printf("请输入要分组的人数:");
scanf("%d", &group);
for(i = 0,j = 1;i < 50;i++,j++)
{
printf("%d", i);
if(j != group)
{
printf(" ");
}
else
{
printf("\n");
}
}
‘陆’ 如何使用c语言对数据随机分组
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
intmain()
{
inta[50];//存放50个球
inti,cnt;
for(i=0;i<50;i++)//标号
a[i]=i+1;
cnt=0;
srand(time(NULL));
while(cnt<25)//随机取25个
{
i=rand()%50;
if(a[i]!=0)//防止重复计数
{
cnt++;
a[i]=0;//标记为已取
}
}
//以下为输出分组结果
printf("array1: ");
cnt=0;
for(i=0;i<50;i++)
{
if(a[i]==0)
{
cnt++;
printf("%3d",i+1);
if(cnt%5==0)//每输出5个一换行
printf(" ");
}
}
printf(" ");
printf("array2: ");
for(i=0;i<50;i++)
{
if(a[i])
{
cnt++;
printf("%3d",a[i]);
if(cnt%5==0)
printf(" ");
}
}
printf(" ");
return0;
}
‘柒’ 怎样用c语言实现数据的分组与排序
那个限制的策略到底是什么
也就是限制的数据是怎么得来的?
如果知道这个的话
写一个枚举算法的程序就行了
枚举这10个数据所有的组合情况
总的组数为 (C2/10)*(C2/8)*(C2/6)*(C2/4)
一点也不大
然后把每组组合按照条件所要求的限制数据判断一下
如果全都成立 就可以输出
否则就继续下一组
‘捌’ C语言三目运算符怎么用
C语言三目运算符用法:
对于条件表达式b ? x : y,先计算条件b,然后进行判断。如果b的值为true,计算x的值,运算结果为x的值;否则,计算y的值,运算结果为y的值。
一个条件表达式绝不会既计算x,又计算y。条件运算符是右结合的,也就是说,从右向左分组计算。例如,a ? b : c ? d : e将按a ? b : (c ? d : e)执行。
<表达式1> ? <表达式2> : <表达式3>; "?"运算符的含义是:先求表达式1的值,如果为真,则执行表达式2,并返回表达式2的结果;如果表达式1的值为假,则执行表达式3,并返回表达式3的结果。
可以理解为条件 ? 结果1 : 结果2里面的?号是格式要求。也可以理解为是不是条件成立,条件成立为结果1否则为结果2。
(8)怎么用c语言分组计算扩展阅读:
三目运算符,又称条件运算符,指的是计算机语言(c,c++,java等)的重要组成部分。它是唯一有3个操作数的运算符,所以有时又称为三元运算符。一般来说,三目运算符的结合性是右结合的。
以下是关于条件运算符的几点说明:
(1)通常情况下,表达式1是关系表达式或逻辑表达式,用于描述条件表达式中的条件,表达式2和表达式3可以是常量,变量或表达式。例如:
(x==y)?'Y':'N'
(d=b*b-4*a*c)>=0?sqrt(d):sqrt(-d)
ch=(ch>='A'&&ch<='Z')?(ch+32):ch
以上均为合法的条件表达式。
(2)条件表达式的执行顺序为:先求解表达式1,若值为非0,表示条件为真,则求解表达式2,此时表达式2的值就作为整个条件表达式的值;
若表达式1的值为0,表示条件为假,则求解表达式3,表达式3的值就是整个条件表达式的值。例如:
(a>=0)?a:-a 执行结果是a的绝对值。
(3)在程序中,通过把条件表达式的值直接赋予某个变量。例如:
min=(a<b)?a:b执行结果就是将条件表达式的值赋予变量min,即将a和b二者中较小的数赋给min。
(4)条件表达式的优先级别仅高于赋值运算符,而低于前面遇到过的所有运算符。
因此,min=(a<b)?a:b括号可以不要,可直接写成,min=a<b?a:b如果有x<y?x+1:y-1等效于x<y(x+1):(y-1)而不等效于(x<y?x+1:y)-1
(5)条件运算符的结合方向为"自右至左".
(6)条件表达式允许嵌套,即允许条件表达式中的表达式2和表达式3又是一个条件表达式。例如:
x>0?1:x<0?-1:0
上述条件表达式中,表达式3部分又是一个条件表达式.根据条件表达式的结合性,上述条件表达式等价于:
x>0?1:(x<0?-1:0)
其作用是判断x的符号情况.当x为正数时,该条件表达式的值为1;当x为负数时,该条件表达式的值为-1;当x为0时,该条件表达式的值为0。
(7)条件表达式不能取代一般的if语句,仅当if语句中内嵌的语句为赋值语句(且两个分支都给同一变量赋值)时才能代替if语句。例如:
if(a%2==0)
printf("even/n");
else
printf("odd/n");
该语句的作用是:若 a 为偶数,输出 even;若 a 为奇数,输出odd。
(8)表达式1,表达式2,表达式3的类型可以不同.此时条件表达式的值的类型为它们中较高的类型。
‘玖’ C语言 分组(数字分组)
是要分组排列呢?还是要分组输出呢?
拿去用!
void Test(int n)
{
for (int i = 1; i <= 50; ++i)
{
cout << i ;
if (i % n == 0)
cout << endl ;
else
cout << ", " ;
}
}