永发信息网

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);
}
上面的做了一些改动。
全部回答
  • 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;     } }
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯