hello098 @ 2023-08-30 11:07:09
//给定 n 和 k,从 1 到 n 之间的所有正整数可以分为两类:A 类数可以被 k 整除(也就是说是 k 的倍数),而 B 类数不能。请输出这两类数的平均数,精确到小数点后 1 位,用空格隔开。
#include <stdio.h>
int main()
{
int n,k,x,y,sum1 = 0,sum2 = 0;
scanf("%d %d",&n ,&k );
int a[n],b[x],c[y];
for(int i = 0;i < n; i ++){
if(a[i] % k == 0){
int x = 0;
b[x] = a[i];
x ++;
}else{
int y = 0;
b[y] = a[i];
y++;
}
}
for(int i = 0;i < x; i ++){
sum1 +=b[i];
}
for(int i = 0; i < y; i ++){
sum2 +=c[i];
}
printf("%.1f %.1f",sum1/(x + 1),sum2/(y + 1));
return 0;
}
by Patpowder @ 2023-08-30 11:43:26
你这个不就是C++嘛
你的代码好离谱,建议重写
不就是循环
printf("%.1f %.1f",x1/(double)n*100,x2/(double)n*100);
所以,建议重写,
给你看看我的代码吧(遮脸
#include <bits/stdc++.h>
using namespace std;
int n,k;
int A_tot,A_amo;
int B_tot,B_amo;
int main() {
cin>>n>>k;
for(int i=1;i<=n;i++){
if(i%k == 0){
A_tot += i;
A_amo += 1;
} else {
B_tot += i;
B_amo += 1;
}
}
cout <<fixed<<setprecision(1)<<(double)A_tot/A_amo<<" "<<(double)B_tot/B_amo<<endl;
// 这段以前写的,那时候不会用printf()
return 0;
}
*/
by Patpowder @ 2023-08-30 11:47:20
草了,注释漏了一段没删