VC驿站

 找回密码
 加入驿站

QQ登录

只需一步,快速开始

有编程疑问吗?还请到提问专区发帖提问!
搜索
查看: 393|回复: 2

[求助] C语言相关,dowhile不运行,strcmp没有对比所有的数据

[复制链接]
54_avatar_middle
在线会员 救人如救火 发表于 2018-5-25 22:13:20 | 显示全部楼层 |阅读模式
3驿站币
  1. #include <stdio.h>
  2. #include <string.h>
  3. #define N 10

  4. void printMarks(char id[10][7],int marks[10]);
  5.     int main()
  6.   {
  7.     char id[10][7];
  8.         char nid[7];// student ID consist by 6 numbers
  9.     int marks[10];
  10.     int i=0;
  11.         int j,k,flag;
  12.     char a;
  13.    
  14.     for(i = 0; i < N; i++)//save values for the student ID and marks
  15.        {
  16.         printf("Enter student ID and student mark: ");
  17.                 scanf("%s %d",id[i],&marks[i]);
  18.                
  19.         }
  20.     printf("Students Mark:\n");
  21.     for(i = 0; i < N; i ++)//show all student ID and marks
  22.     {    printf("%s %d \n",id[i],marks[i]);
  23.              }
  24.    
  25.     do // make a loop countinue ask update the score, if the answer is no, finish the programm.
  26.      {
  27.         printf("Do you want to update the score? Y/N\n");
  28.         fflush(stdin);
  29.                 scanf("%c",&a);
  30.         if (a=='N')
  31.                 break;
  32.         if  (a='Y') // if the answer is yes, do the update programme
  33.         {
  34.             printf("Please enter student ID:");// ask new student id and new score to update the information
  35.             scanf("%s",nid);   
  36.             for(i = 0; i < k; i ++)//
  37.               {       
  38.                 if(strcmp(nid,id[i]) == 0)//compare the student id
  39.                    {
  40.                
  41.                     printf("Please enter student ID and new score:");
  42.                      scanf("%s %d",id, &marks);
  43.                     
  44.                                         for(i = 0; i < N; i ++)//show all student ID and marks
  45.                     {    printf("%s %d \n",id[i],marks[i]);
  46.                      }
  47.                     break;
  48.                              }
  49.                else {printf("This id is not exitsts\n");?/ if the id is wrong exist for loop
  50.                       }
  51.                
  52.                }
  53.         }
  54.                  
  55.     }while (a==i);
  56.     printf("thanks for using our system, see you");
  57. }
复制代码

   





上一篇:Unicode字符集,两个LPWSTR 怎么拼接。
下一篇:C程序的疑问

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你已经在论坛发帖求助,并且从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】

如何回报帮助你解决问题的坛友?可以给对方加【热心】【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

51_avatar_middle
online_admins Syc 发表于 2018-5-25 22:31:52 | 显示全部楼层
不知道是楼主的代码不完整还是怎么的,上面的代码中发现变量 k 没有初始化就被下面的 for 循环使用了:
for (i = 0; i < k; i++)//
所以我的理解是把这个 k 改成 N 应该就可以了:
for (i = 0; i < N; i++)//
楼主试试吧!

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你已经在论坛发帖求助,并且从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】

如何回报帮助你解决问题的坛友?可以给对方加【热心】【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

回复

使用道具 举报

05_avatar_middle
在线会员 Ui_Bing 发表于 2018-6-12 17:01:43 | 显示全部楼层
首先:if  (a='Y') //需要改为if  (a=='Y') 。然后 for(i = 0; i < k; i ++)中的K值未赋值。接着if(strcmp(nid,id[i]) == 0)中的nid,需要改为nid[i]。最后while (a==i),写错了。因为,a为char型,而i为int型,两者没有可比性。按照这程序的意思,可以尝试修改为while (N==i).

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你已经在论坛发帖求助,并且从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】

如何回报帮助你解决问题的坛友?可以给对方加【热心】【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 加入驿站 qq_login

本版积分规则

关闭

站长提醒上一条 /1 下一条

QQ
QQ在线咨询
联系电话
13591366679
手机扫一扫 关注本站精彩内容
wxqrcode

QQ|小黑屋|手机版|VC驿站 ( 辽ICP备09019393号tongdun|网站地图wx_jqr

GMT+8, 2018-8-18 18:27

Powered by Discuz! X3.4

© 2009-2018 cctry.com

快速回复 返回顶部 返回列表