phi*_*dex 4 c for-loop declaration cs50
#include <cs50.h>
#include <stdio.h>
#include <string.h>
int main(void)
{
//ask user for input
string s = get_string();
//make sure get_string() returned a string
if(s != NULL)
{
//iterate over the characters one at a time
for(int i = 0, int n = strlen(s); i < n; i++)
{
//print i'th character in s
printf("%c\n", s[i]);
}
}
else
{
//tell the user that their input is not a string
printf("Sorry, no good\n");
}
}
Run Code Online (Sandbox Code Playgroud)
编译器抱怨这一行:
for(int i = 0, int n = strlen(s); i < n; i++)
Run Code Online (Sandbox Code Playgroud)
因为我声明了整数n与int定义的类型.
该程序编译得很好:
for(int i = 0, n = strlen(s); i < n; i++)
Run Code Online (Sandbox Code Playgroud)
为什么int需要/良好的形式i,但n在这个例子中不是?
Ste*_*eve 10
这是因为这一行:
int i = 0, n = strlen(s)
Run Code Online (Sandbox Code Playgroud)
创建两个整数叫i和n和初始化它们.
当你把:
int i = 0, int n = strlen(s)
Run Code Online (Sandbox Code Playgroud)
你创建一个调用i并初始化它的int ,然后你尝试创建另一个int n没有意义的int .
没有理由初始化n它 - 毕竟它不应该改变.在循环之前初始化它:
int n = strlen(s);
for(int i = 0; i < n; i++)
{
...
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
223 次 |
| 最近记录: |