c语言要求输入一个8位学号 然后求它的前四个数相加的和 后四个数相加
答案:3 悬赏:10 手机版
解决时间 2021-12-27 20:40
- 提问者网友:相思似海深
- 2021-12-27 17:24
c语言要求输入一个8位学号 然后求它的前四个数相加的和 后四个数相加的和 然后相除 只能用一个循环 怎么弄啊
最佳答案
- 五星知识达人网友:妄饮晩冬酒
- 2021-12-27 18:45
#include
void main()
{
int x,i,a,b;
float n;
printf("输入学号:");
scanf("%d",&x);
a=b=0;
i=0;
while(x)
{
if(i<4)
b+=x%10;
else
a+=x%10;
i++;
x/=10;
}
n=(float)a/b;
printf("%d,%d,%f\n",a,b,n);
}
上面的做了一些改动。
void main()
{
int x,i,a,b;
float n;
printf("输入学号:");
scanf("%d",&x);
a=b=0;
i=0;
while(x)
{
if(i<4)
b+=x%10;
else
a+=x%10;
i++;
x/=10;
}
n=(float)a/b;
printf("%d,%d,%f\n",a,b,n);
}
上面的做了一些改动。
全部回答
- 1楼网友:笑迎怀羞
- 2021-12-27 20:24
#include
void main() { int m,n,i,s1,s2;
scanf("%d",&n); s1=s2=0;
m=n; i=0;
while ( m ) {
if ( i<4 ) s2+=m%10; else s1+=m%10;
i++; m/=10;
}
printf("%d,%d\n",s1,s2);
}
- 2楼网友:走死在岁月里
- 2021-12-27 18:59
最简单的就是用链表保存每个学号,当输入新学号时遍历整个链表:
#define id_len 20
typedef struct student{
char id[id_len];
// 其他你需要的数据
struct student *next;
} student;
void foo(student *list)
{
if(list == null) return;
char buf[id_len];
student *p;
while(fgets(buf, id_len, stdin) != null) {
buf[strlen(buf) - 1] = '\0';
p = list;
while(p != null && strcmp(p->id, buf) != 0)
p = p->next;
if(p == null) // 未找到重复学号,直接退出
return;
}
}
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯