user-0 提问: 一个小程序，运行不出来，求指点

回复:
user: user-0
content: 引用 1 楼 dogear :)的回复:用switch选择结构不太合适吧，比如15，原来的程序会输出 1234567890 5 而不是 1234567890 12345  #include <stdio.h> #include <stdlib.h>  int main(void) {     int n;     int i,j;     int a;     printf("请输入一个整数：");     //scanf("%d",n);     scanf("%d",&n);     i=n/10;     //for(j=0; j<=i; j++)     for(j=0; j<i; j++)     {         puts("1234567890");     }      a=n%10; /*    switch(a)     {     case 1:         printf("1");         break;     case 2:         printf("2");         break;     case 3:         printf("3");         break;     case 4:         printf("4");         break;     case 5:         printf("5");         break;     case 6:         printf("6");         break;     case 7:         printf("7");         break;     case 8:         printf("8");         break;     case 9:         printf("9");         break;     default:         puts("0");         break;     } */     for(j=1;j <= a;j++)     {         printf("%d",j);     }     return 0; }  也可以换一种思路： int main(void) {         int i,j,n;         j=1;         printf("请输入一个整数：");         scanf("%d",&n);         for(i=0;i<n;i++) {             printf("%d",j);             j++;             if(j==10)                 j-=10;         }         printf("\n");         return 0; } 我不知道为什么自己总是把一些简单的问题想的很复杂

user: user-0
content: 引用 1 楼 dogear :)的回复:用switch选择结构不太合适吧，比如15，原来的程序会输出 1234567890 5 而不是 1234567890 12345  #include <stdio.h> #include <stdlib.h>  int main(void) {     int n;     int i,j;     int a;     printf("请输入一个整数：");     //scanf("%d",n);     scanf("%d",&n);     i=n/10;     //for(j=0; j<=i; j++)     for(j=0; j<i; j++)     {         puts("1234567890");     }      a=n%10; /*    switch(a)     {     case 1:         printf("1");         break;     case 2:         printf("2");         break;     case 3:         printf("3");         break;     case 4:         printf("4");         break;     case 5:         printf("5");         break;     case 6:         printf("6");         break;     case 7:         printf("7");         break;     case 8:         printf("8");         break;     case 9:         printf("9");         break;     default:         puts("0");         break;     } */     for(j=1;j <= a;j++)     {         printf("%d",j);     }     return 0; }  也可以换一种思路： int main(void) {         int i,j,n;         j=1;         printf("请输入一个整数：");         scanf("%d",&n);         for(i=0;i<n;i++) {             printf("%d",j);             j++;             if(j==10)                 j-=10;         }         printf("\n");         return 0; } 谢谢，听了您这么一说感觉switch好像是不太对

user: user-0
content: 引用 2 楼 user-3的回复:这句应该是scanf("%d",&n); 谢谢哈，我回去试试，我自己居然没发现这个小错误

user: user-0
content: 引用 6 楼 dogear :)的回复:[quote=引用 5 楼 Cathy.Q的回复:][quote=引用 1 楼 dogear :)的回复:]用switch选择结构不太合适吧，比如15，原来的程序会输出 1234567890 5 而不是 1234567890 12345  #include <stdio.h> #include <stdlib.h>  int main(void) {     int n;     int i,j;     int a;     printf("请输入一个整数：");     //scanf("%d",n);     scanf("%d",&n);     i=n/10;     //for(j=0; j<=i; j++)     for(j=0; j<i; j++)     {         puts("1234567890");     }      a=n%10; /*    switch(a)     {     case 1:         printf("1");         break;     case 2:         printf("2");         break;     case 3:         printf("3");         break;     case 4:         printf("4");         break;     case 5:         printf("5");         break;     case 6:         printf("6");         break;     case 7:         printf("7");         break;     case 8:         printf("8");         break;     case 9:         printf("9");         break;     default:         puts("0");         break;     } */     for(j=1;j <= a;j++)     {         printf("%d",j);     }     return 0; }  也可以换一种思路： int main(void) {         int i,j,n;         j=1;         printf("请输入一个整数：");         scanf("%d",&n);         for(i=0;i<n;i++) {             printf("%d",j);             j++;             if(j==10)                 j-=10;         }         printf("\n");         return 0; } 我不知道为什么自己总是把一些简单的问题想的很复杂[/quote] 慢慢积累，相信代码量会给我们一个答案[/quote] 嗯嗯，我刚上大二，最近课少，准备把大一学的C语言再学一遍。这学期我们还会有数据结构这门课。

user: user-1
content: #include<stdio.h> int main(void) {     int n;     int i,j;     int a;      printf("请输入一个整数：");     //scanf("%d",n);    //少了&     scanf("%d", &n);      /*     i=n/10;     for(j=0;j<=i;j++){          puts("1234567890");     }     */      while (n) {         a = n%10;         switch(a){             case 1:printf("1");break;             case 2:printf("2");break;             case 3:printf("3");break;             case 4:printf("4");break;             case 5:printf("5");break;             case 6:printf("6");break;             case 7:printf("7");break;             case 8:printf("8");break;             case 9:printf("9");break;             default:puts("0");break;         }         n /= 10;     }     return 0; } 供参考～

user: user-2
content: 引用 5 楼 Cathy.Q的回复:[quote=引用 1 楼 dogear :)的回复:]用switch选择结构不太合适吧，比如15，原来的程序会输出 1234567890 5 而不是 1234567890 12345  #include <stdio.h> #include <stdlib.h>  int main(void) {     int n;     int i,j;     int a;     printf("请输入一个整数：");     //scanf("%d",n);     scanf("%d",&n);     i=n/10;     //for(j=0; j<=i; j++)     for(j=0; j<i; j++)     {         puts("1234567890");     }      a=n%10; /*    switch(a)     {     case 1:         printf("1");         break;     case 2:         printf("2");         break;     case 3:         printf("3");         break;     case 4:         printf("4");         break;     case 5:         printf("5");         break;     case 6:         printf("6");         break;     case 7:         printf("7");         break;     case 8:         printf("8");         break;     case 9:         printf("9");         break;     default:         puts("0");         break;     } */     for(j=1;j <= a;j++)     {         printf("%d",j);     }     return 0; }  也可以换一种思路： int main(void) {         int i,j,n;         j=1;         printf("请输入一个整数：");         scanf("%d",&n);         for(i=0;i<n;i++) {             printf("%d",j);             j++;             if(j==10)                 j-=10;         }         printf("\n");         return 0; } 我不知道为什么自己总是把一些简单的问题想的很复杂[/quote] 慢慢积累，相信代码量会给我们一个答案

user: user-3
content: 这句应该是scanf("%d",&n);

user: user-2
content: 用switch选择结构不太合适吧，比如15，原来的程序会输出 1234567890 5 而不是 1234567890 12345  #include <stdio.h> #include <stdlib.h>  int main(void) {     int n;     int i,j;     int a;     printf("请输入一个整数：");     //scanf("%d",n);     scanf("%d",&n);     i=n/10;     //for(j=0; j<=i; j++)     for(j=0; j<i; j++)     {         puts("1234567890");     }      a=n%10; /*    switch(a)     {     case 1:         printf("1");         break;     case 2:         printf("2");         break;     case 3:         printf("3");         break;     case 4:         printf("4");         break;     case 5:         printf("5");         break;     case 6:         printf("6");         break;     case 7:         printf("7");         break;     case 8:         printf("8");         break;     case 9:         printf("9");         break;     default:         puts("0");         break;     } */     for(j=1;j <= a;j++)     {         printf("%d",j);     }     return 0; }  也可以换一种思路： int main(void) {         int i,j,n;         j=1;         printf("请输入一个整数：");         scanf("%d",&n);         for(i=0;i<n;i++) {             printf("%d",j);             j++;             if(j==10)                 j-=10;         }         printf("\n");         return 0; }