文章目录
记录下CG平台作业,本人C语言萌新一枚🙊
作业要求
【问题描述】统计一批整数中不同整数的个数。
【输入形式】输入数据用个空格隔开。
【输出形式】输出不同整数及其个数
【样例输入】10 8 8 6 8 6 4 3 1 1
【样例输出】dif-num:10 8 6 4 3 1 .counts:1 3 2 1 1 2
【样例说明】
【评分标准】用直接访问(下标)方法实现
作业成品
#define _CRT_SECURE_NO_WARNINGS
#include
int main() {
int a,b[10],c=1,cb[10]={0};
for (int i = 0; i scanf("%d", &a);
if (i == 0) {
b[0] = a;
continue;
}
for (int m = 0; m if (b[m] == a) {
cb[m] = cb[m] + 1;
break;
}
if (m == c) {
b[c] = a;
c++;
break;
}
}
}
printf("dif-num:");
for (int i = 0; i printf("%d ", b[i]);
}
printf(".counts:");
for (int i = 0; i printf("%d ", cb[i]+1);
}
}
思路
将第一个数放到数组的第一个位置
scanf("%d", &a);
if (i == 0) {
b[0] = a;
continue;
}
逐个判断,数字是否在数组中出现过,若存在,则数量加一,跳出循环
for (int m = 0; m if (b[m] == a) {
cb[m] = cb[m] + 1;
break;
}
总共循环10次
若不存在,则为数据开辟一个新位置,总种数加一,跳出循环
if (m == c) {
b[c] = a;
c++;
break;
}
按顺序打印结果
printf("dif-num:");
for (int i = 0; i printf("%d ", b[i]);
}
printf(".counts:");
for (int i = 0; i printf("%d ", cb[i]+1);
}
另一种表达
#include
int main() {
int a[10], i;
for (i = 0; i scanf("%d ", &a[i]);
}
int b[20] = {0};
for (i = 0; i b[a[i]]++;
}
printf("dif-num:");
for (i = 19; i > 0; i--) {
if (b[i] != 0) {
printf("%d ", i);
}
}
printf(".counts:");
int t = 0;
for (i = 19; i >= 0; i--) {
if (b[i] != 0) {
if (t != 0) {
printf(" ");
}
t++;
printf("%d", b[i]);
}
}
return 0;
}
思路
统计各个数据的数量
int a[10], i;
for (i = 0; i scanf("%d ", &a[i]);
}
int b[20] = {0};
for (i = 0; i b[a[i]]++;
}
筛选掉数量为零的值,值
printf("dif-num:");
for (i = 19; i > 0; i--) {
if (b[i] != 0) {
printf("%d ", i);
}
}
交替打印空格和数值
for (i = 19; i >= 0; i--) {
if (b[i] != 0) {
if (t != 0) {
printf(" ");
}
t++;
printf("%d", b[i]);
}
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
机房租用,北京机房租用,IDC机房托管, http://www.e1idc.net