运行程序#include<stdio.h> int main( ){ char c ; c = getchar( ); while ( c != '\n' ){ switch ( c - '2' ){ case 0 : case 1: putchar( c + 4 ) ; case 2: putchar( c + 4 ) ; break; case 3: putchar( c + 3 ) ; case 4: putchar( c + 2 ) ; break; } c = getchar( ); } printf( "\n" ) ; return 0 ; }
时间: 2023-06-02 11:06:47 浏览: 105
运行程序是指将计算机程序从存储器中被装载到计算机内存中,并开始执行指令与算法的过程。这个过程需要先将程序代码编写后,通过编译器将代码转换成可以被计算机识别的指令与数据格式,然后由操作系统负责调度,将程序从存储器中调入内存中并执行。运行程序是计算机完成各种任务的基础,也是计算机科学的核心内容之一。
相关问题
检查以下答案是否与题目先符合: 输入一个以#结束的字符串,滤去所有的非十二进制字符(不分大小写),组成一个新的表示十二进制数字的字符串,并输出新的字符串。过滤时,如果在第一个十二进制数字字符前出现“-”,代表该字符串对应的数是负数,则先输出“-”,再输出字符串。题目假设过滤后的字符串不为空。 #include <stdio.h> int main() { int flag, i, j; char str[81], newstr[81]; i = 0; while ((str[i] = getchar())!='#') { i++; } str[i] = '\0'; i = j = 0; flag = 0; while (str[i] != '\0'){ if ((str[i]>='a'&&str[i]<='b')||(str[i]>='A'&&str[i]<='B')||(str[i]>='0'&&str[i]<='9')) { newstr[j] = str[i]; j++; }else if (str[i]=='-') { flag = 1; } i++; } newstr[j] = '\0'; if (flag == 1){ putchar('-'); } for(i = 0; newstr[i] != '\0'; i++){ putchar(newstr[i]); } putchar('\n'); return 0; }
这段代码可以实现题目要求,输入一个以#结束的字符串,然后过滤掉非十二进制字符,组成一个新的表示十二进制数字的字符串,并输出新的字符串。如果在第一个十二进制数字字符前出现“-”,代表该字符串对应的数是负数,则先输出“-”,再输出字符串。代码中的变量flag用来表示是否为负数。如果flag为1,就在输出新字符串之前先输出“-”。
改正#define CLASSES 3 #define GRADES 30 #include <stdio.h> #include <stdlib.h> #include <ctype.h> void enter_grades(int a[][GRADES]); void disp_grades(int g[][GRADES]); int get_grade(); int main() { int a[CLASSES][GRADES]; char ch; for (;;) { do { printf("(E)nter grades\n"); printf("(R)eport grades\n"); printf("(Q)uit\n"); ch = toupper(getchar()); } while (ch != 'E' && ch != 'R' && ch != 'Q'); switch (ch) { case 'E': enter_grades(a); break; case 'R': disp_grades(a); break; case 'Q': exit(0); } } return 0; } void enter_grades(int a[][GRADES]) { int t, i; for (t = 0; t < CLASSES; t++) { printf("class #%d:\n", t + 1); for (i = 0; i < GRADES; i++) { a[t][i] = get_grade(); } } } int get_grade(int i) { char s[80]; printf("enter grade for student #%d:\n", i + 1); fgets(s, sizeof(s), stdin); return atoi(s); } void disp_grades(int g[][GRADES]) { int t, i; for (t = 0; t < CLASSES; ++t) { printf("class #%d:\n", t + 1); for (i = 0; i < GRADES; ++i) { printf("grade for student #%d is %d\n", i + 1, g[t][i]); } } }
好的,我看到您修改了代码,但是 `get_grade()` 函数的参数没有被使用,编译器仍然会报错。
为了解决这个问题,您可以将 `get_grade()` 函数的参数 `i` 删除,因为在 `enter_grades()` 函数中已经通过循环的索引变量 `i` 来表示当前输入的学生序号了。
下面是修改后的代码:
```c
#define CLASSES 3
#define GRADES 30
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
void enter_grades(int a[][GRADES]);
void disp_grades(int g[][GRADES]);
int get_grade();
int main() {
int a[CLASSES][GRADES];
char ch;
for (;;) {
do {
printf("(E)nter grades\n");
printf("(R)eport grades\n");
printf("(Q)uit\n");
ch = toupper(getchar());
} while (ch != 'E' && ch != 'R' && ch != 'Q');
switch (ch) {
case 'E':
enter_grades(a);
break;
case 'R':
disp_grades(a);
break;
case 'Q':
exit(0);
}
}
return 0;
}
void enter_grades(int a[][GRADES]) {
int t, i;
for (t = 0; t < CLASSES; t++) {
printf("class #%d:\n", t + 1);
for (i = 0; i < GRADES; i++) {
a[t][i] = get_grade();
}
}
}
int get_grade() {
char s[80];
fgets(s, sizeof(s), stdin);
return atoi(s);
}
void disp_grades(int g[][GRADES]) {
int t, i;
for (t = 0; t < CLASSES; ++t) {
printf("class #%d:\n", t + 1);
for (i = 0; i < GRADES; ++i) {
printf("grade for student #%d is %d\n", i + 1, g[t][i]);
}
}
}
```
这样就可以避免编译器报错了。
阅读全文